fdisk, parted, dmesg 및 /dev/sdXy 간에 USB 파티션 및 디스크 용량이 일치하지 않는 이유는 무엇입니까?

fdisk, parted, dmesg 및 /dev/sdXy 간에 USB 파티션 및 디스크 용량이 일치하지 않는 이유는 무엇입니까?

면책조항: 저는 원래 SF에 이것을 게시했습니다:https://serverfault.com/q/645670하지만 내 생각엔 여기가 더 잘 맞는 것 같아

먼저 약간의 맥락을 말씀드리겠습니다. 16Gb USB 플래시 드라이브에 ISO를 굽으려고 하는데 기본 MBR + 설치 가능 파티션을 올바르게 설정하는 데 문제가 있습니다.

지금까지 나는 다음과 같이 일치하지 않는 정보를 수집했습니다.

  • /dev/sdb*/dev/sdb& 로 확장됨 /dev/sdb2: 이는 인덱스 2의 파티션을 나타내는 것으로 보입니다. 을 마운트하면 /dev/sdb2이것이 df2.0M VFAT 파일 시스템이라는 메시지가 나타납니다.

  • fdisk& 3929750 * 512바이트 섹터 = 2Gb 용량의 parted두 장치가 감지되었습니다 . /dev/sdb또한 둘 다 /dev/sdb12GB의 고유한 하위 파티션을 나열합니다.

  • dmesg맞습니다(?) Kingston 16Gb USB 플래시 드라이브가 감지되었습니다

전화 partprobe해도 아무런 차이가 없습니다.

운영 체제에서는 /dev/sdb2 파티션을 감지했지만 fdisk&는 감지하지 못하는 이유는 무엇입니까 parted?

둘째: dmesg"16Gb 용량" 정보는 어디에서 왔습니까?


일부 명령 출력 세부정보:

$ uname -a
Linux DAEDALUS 3.13.0-39-generic #66-Ubuntu SMP Tue Oct 28 13:30:27 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

$ usb-devices | grep -A7 Bus=03
T:  Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 2
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev=03.13
S:  Manufacturer=Linux 3.13.0-39-generic xhci_hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=0000:04:00.0
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

$ ls -l /dev/sdb*
-rw-r--r-- 1 root root 2012049408 Nov 20 01:50 /dev/sdb
-rw-r--r-- 1 root root    2097152 Nov 20 01:18 /dev/sdb2

$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 2012 MB, 2012049408 bytes
158 heads, 33 sectors/track, 753 cylinders, total 3929784 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
Disk identifier: 0x3262a45b

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048     3929783     1963868   83  Linux

$ sudo parted /dev/sdb unit s print
Model:  (file)
Disk /dev/sdb: 3929784s
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start  End       Size      File system  Name              Flags
 1      2048s  3929750s  3927703s               Linux filesystem  boot

$ sudo fdisk -l /dev/sdb2
You must set cylinders.
You can do this from the extra functions menu.

Disk /dev/sdb2: 2 MB, 2097152 bytes
255 heads, 63 sectors/track, 0 cylinders, total 4096 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
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System

$ sudo parted /dev/sdb2 unit s print
Model:  (file)
Disk /dev/sdb2: 4096s
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start  End  Size  Type  File system  Flags

dmesg16Gb 용량을 올바르게 감지했음을 보여주는 관련 출력의 발췌 :

[Thu Nov 20 01:38:46 2014] usb-storage 2-1.2:1.0: USB Mass Storage device detected
[Thu Nov 20 01:38:46 2014] scsi22 : usb-storage 2-1.2:1.0
[Thu Nov 20 01:38:48 2014] scsi 22:0:0:0: Direct-Access     Kingston DataTraveler G2  PMAP PQ: 0 ANSI: 0 CCS
[Thu Nov 20 01:38:48 2014] sd 22:0:0:0: Attached scsi generic sg2 type 0
[Thu Nov 20 01:38:49 2014] sd 22:0:0:0: [sdb] 31252480 512-byte logical blocks: (16.0 GB/14.9 GiB)
[Thu Nov 20 01:38:49 2014] sd 22:0:0:0: [sdb] Write Protect is off
[Thu Nov 20 01:38:49 2014] sd 22:0:0:0: [sdb] Mode Sense: 23 00 00 00
[Thu Nov 20 01:38:49 2014] sd 22:0:0:0: [sdb] No Caching mode page found
[Thu Nov 20 01:38:49 2014] sd 22:0:0:0: [sdb] Assuming drive cache: write through

관련 정보