/sys/block/sd*/sd*/size의 의미

/sys/block/sd*/sd*/size의 의미

디스크 크기는 /sys/block/sda/size항상 정확하지만 /sys/block/sda/sda2/size파티션 유형이 확장, 부팅 등인 경우 파티션 크기가 올바르지 않으므로 MBR을 읽어 올바른 파티션 크기를 얻습니다.

/sys/block/sd*/sd*/size파일의 값은 무엇을 의미합니까? MBR을 읽거나 명령을 사용하는 것 외에 파티션 크기를 얻는 올바른 방법은 무엇입니까?

예:

nyc@nyc:~/Documents$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 1 TiB, 1099511627776 bytes, 2147483648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x13ce1e72

Device     Boot      Start        End    Sectors  Size Id Type
/dev/sdb1  *          2048 1881196543 1881194496  897G 83 Linux
/dev/sdb2       1881196544 2147483647  266287104  127G  5 Extended
/dev/sdb5       1881198592 1983643647  102445056 48.9G 83 Linux
/dev/sdb6       1983645696 2076295167   92649472 44.2G 83 Linux
/dev/sdb7       2090141696 2139455487   49313792 23.5G 83 Linux
/dev/sdb8       2139457536 2147483647    8026112  3.8G  7 HPFS/NTFS/exFAT
nyc@nyc:~/Documents$ cat /sys/block/sdb/size 
2147483648
nyc@nyc:~/Documents$ cat /sys/block/sdb/sdb2/size 
2

답변1

파티션이 논리 파티션을 포함하는 확장 파티션이기 때문에 2개를 얻습니다. 여기서 2는 섹터 수를 의미 512 byte하거나 블록이 1개 있다고 말할 수 있습니다 1K. 다음 명령을 사용하여 lsblk출력을 얻을 수 있습니다.

sdb2   8:3    0     1K  0 part 

이는 확장 파티션임을 나타냅니다.

관련 정보