Eu tenho uma regra udev para sticks USB com formato fat32. A regra contém tais atributos:
SUBSYSTEM=="block", KERNEL=="sd?1", ...
Normalmente, funciona muito bem para os pendrives que testei até agora, pois a maioria dos pendrives são representados no nó do dispositivo como /dev/sda1
ou /dev/sdb1
.
Agora, tenho um USB especial que possui um nó de dispositivo como /dev/sda
. O blkid
comando deste stick USB retorna tais saídas:
/dev/sda: UUID="AC9E-6C58" TYPE="vfat"
Comparado com o normal ( /dev/sda1
), sinto falta do PARTUUID
atributo.
Além disso, o comando sfdisk -l /dev/sda
retorna estas saídas:
Disk /dev/sda: 1021 cylinders, 247 heads, 62 sectors/track
Units: cylinders of 7840768 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End #cyls #blocks Id System
/dev/sda1 0 - 0 0 0 Empty
/dev/sda2 0 - 0 0 0 Empty
/dev/sda3 0 - 0 0 0 Empty
/dev/sda4 0 - 0 0 0 Empty
Este USB tem 0 na /dev/sda1
linha. No entanto, o stick USB normal possui essas entradas:
Device Boot Start End #cyls #blocks Id System
/dev/sda1 0+ 2703- 2704- 7835620 b W95 FAT32
start: (c,h,s) expected (0,1,11) found (0,0,57)
end: (c,h,s) expected (1023,125,46) found (975,125,46)
/dev/sda2 0 - 0 0 0 Empty
/dev/sda3 0 - 0 0 0 Empty
/dev/sda4 0 - 0 0 0 Empty
Com base nesta discussão , isso significa que o stick USB não possui uma tabela de partições.
Se eu não quiser alterar minhas regras do udev, como posso modificar este pendrive? Uma nova partição normal com a ferramenta Windows ou Gparted não altera esse layout.
Se não for possível alterar o layout da partição, como posso alterar minha regra udev para que ela possa lidar com o pendrive que reconhece em /dev/sda ou /dev/sda1?
Obrigado.
Atualização: alterei o termo "mount" para "nó do dispositivo" para evitar confusão. Graças a Austin.
Desde que você não tenha dados que precise manter no stick USB e que apareça como
/dev/sda
, execute o seguinte como root:Isso apagará a assinatura FAT32 (e quaisquer outras assinaturas do sistema de arquivos também) do dispositivo para que apareça como vazio, ponto em que o GParted e o gerenciador de disco do Windows devem criar uma tabela de partições quando você for reformatá-lo.
Além disso, apenas para esclarecer a terminologia, o kernel não 'monta' dispositivos em
/dev
, ele cria nós de dispositivo que podem ser usados para interagir com os dispositivos (embora, se você tiver o udev, pode estar criando os nós de dispositivo em vez de o kernel), mas a montagem é uma operação que se refere especificamente a sistemas de arquivos (mais especificamente, 'montar X em Y' implica que X contém um sistema de arquivos e você está tornando esse sistema de arquivos acessível diretamente no local Y, o que não é o que está acontecendo quando os nós do dispositivo são criados).Outra solução no Windows é usando
diskpart
:cmd
no campo de pesquisa inicial do Windows.diskpart
e digitelist disk
na nova janela do DiskPart para ver os dispositivos atuaislist disk
para observar o número correto do disco do stick USBselect disk=<number>
. Substitua<number>
pelo número do disco do stick USB que você deseja redefinir.clean
econvert mbr
crie uma nova tabela de partições no pendrive.create partition primary
o comando para criar uma nova partição primária.