簡體   English   中英

如何找到硬盤的最后一個扇區?

[英]How do I find the last sector of harddisk?

我沒有嘗試通過將扇區數乘以 10 來找到最后一個扇區。我嘗試通過增加 1 來找到它,但系統很累,花了很多時間。 我不想過濾掉就緒命令的輸出。

如何找到柱面、磁頭和扇區的數量。 我想我會通過從 chs 系統轉換為 lba 系統來獲得扇區數。

import os
def main():
    s=1
    if os.name == "nt":
        while True:
            if read_sector(r"\\.\physicaldrive0",s)=='':
                break
            else:
                s=s*10
            print(s)
    else:
        while True:
            if read_sector("/dev/sda",s)=='':
                break
            else:
                s=s*10
            print(s)
def read_sector(disk, sector_no=0):
    f = open(disk, 'rb')
    f.seek(sector_no * 1)
    read = f.read(1)
    return read

if __name__ == "__main__":
    main()

或者

import os
def main():
    s=0
    if os.name == "nt":
        while True:
            if read_sector(r"\\.\physicaldrive0",s)=='':
                break
            else:
                s=s+1
            print(s)
    else:
        while True:
            if read_sector("/dev/sda",s)=='':
                break
            else:
                s=s+1
            print(s)
def read_sector(disk, sector_no=0):
    f = open(disk, 'rb')
    f.seek(sector_no * 1)
    read = f.read(1)
    return read

if __name__ == "__main__":
    main()
import os
def end_sector(disk):
    os.system("fdisk -l %s >fdisk.lst"%disk)
    with open("fdisk.lst") as file:
        dosya=file.read()
        dosya=dosya.split()
        j=0
        for i in dosya:
            j=j+1
        for i in range(j):
            if dosya[i]=="sektör":
                max_sector=int(dosya[i-1])
        for i in range(j):
            if dosya[i]=="=" and dosya[i-1]==dosya[i+1]:
                sector_size=int(dosya[i+1])
    return max_sector,sector_size
dizi=end_sector("/dev/sdb")
print(dizi)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM