Por que as partições USB e a capacidade de disco não são coerentes entre fdisk, parted, dmesg e / dev / sdXy?

1
Disclaimer: Inicialmente postei isso no SF: link , mas acho que cabe melhor aqui

Primeiro, uma palavra de contexto: estou tentando gravar um ISO em uma chave USB de 16 Gb, mas estou com dificuldades para configurar corretamente uma partição montável básica do MBR +.

Até o momento, coletei as seguintes informações não correspondentes:

  • /dev/sdb* expande para /dev/sdb & /dev/sdb2 : isso parece indicar uma partição com o índice 2. Se eu montar /dev/sdb2 , df me dirá que é um sistema de arquivos 2.0F VFAT.

  • fdisk & parted detectam um dispositivo /dev/sdb com 3929750 * 512 bytes setores = capacidade de 2 Gb. Eles também listam uma partição child /dev/sdb1 exclusiva de 2 Gb.

  • dmesg corretamente (?) detecta uma chave USB de 16 Gb da Kingston

Invocar partprobe não faz diferença.

Por que a partição / dev / sdb2 é detectada pelo SO, mas não por fdisk & parted ?

E secundariamente: de onde vem a informação dmesg "capacidade de 16 Gb"?

Alguns detalhes de saída do comando:

$ 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

Extrato da saída pertinente dmesg , mostrando corretamente a capacidade de 16 Gb:

[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
    
por Lucas Cimon 20.11.2014 / 11:34

0 respostas