Unidade flash USB com partição codificada

2

Tenho uma unidade flash USB de 16 GB do Kingston DataTraveler 2.0 :

link

A parte estranha com este flash drive USB é que, apesar do fato de eu ter preenchido o flash drive com zero:

# dd if=/dev/zero of=/dev/sdc bs=10M
dd: writing '/dev/sdc': No space left on device
1490+0 records in
1489+0 records out
15614803968 bytes (16 GB) copied, 3837.37 s, 4.1 MB/s
# 

.. ele ainda se representa como se tivesse uma partição em:

# fdisk -l /dev/sdc*

Disk /dev/sdc: 15.6 GB, 15614803968 bytes
64 heads, 32 sectors/track, 14891 cylinders, total 30497664 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

Disk /dev/sdc doesn't contain a valid partition table

Disk /dev/sdc1: 241 MB, 241172480 bytes
64 heads, 32 sectors/track, 230 cylinders, total 471040 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

Disk /dev/sdc1 doesn't contain a valid partition table
# 

gdisk mostra um GUID diferente para /dev/sdc e /dev/sdc1 . Se eu grep a saída de dmesg para sdc1, apenas a saída é:

[21329562.191413]  sdc: sdc1

Como entender esses flash drives?

    
por Martin 05.02.2016 / 13:32

1 resposta

3

O kernel mantém uma cópia da tabela de partições na memória. Na verdade, ele não lembra onde a tabela de partição está armazenada, por isso não detecta que a tabela de partição foi alterada no disco. É por isso que você ainda está vendo a partição que estava lá antes.

Você precisa dizer ao kernel para analisar o disco novamente para atualizar sua tabela de partição na memória. Execute partprobe /dev/sdc . As ferramentas de particionamento, como fdisk , fazem isso para você quando escrevem uma nova tabela de partição no disco, mas se você gravar diretamente no disco, precisará informar o kernel manualmente.

    
por 07.02.2016 / 00:30