Como modificar um dispositivo USB para ter um nó de dispositivo como / dev / sda1 em vez de / dev / sda?

0

Eu tenho uma regra do udev para pen drives USB com o formato fat32. A regra contém esses atributos:

SUBSYSTEM=="block", KERNEL=="sd?1", ...

Normalmente, funciona muito bem para dispositivos USB que testei até agora, já que a maioria dos dispositivos USB são representados no nó do dispositivo como /dev/sda1 ou /dev/sdb1 .

Agora, tenho um USB especial que tem um nó de dispositivo como /dev/sda . O comando blkid deste stick USB retorna essas saídas:

/dev/sda: UUID="AC9E-6C58" TYPE="vfat"

Comparado com o normal ( /dev/sda1 ), sinto falta do atributo PARTUUID .

Além disso, o comando sfdisk -l /dev/sda retorna essas 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 linha /dev/sda1 . No entanto, o stick USB normal tem 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 , significa que o dispositivo USB não tem uma tabela de partições.

Se eu não quiser alterar minhas regras do udev, como posso modificar esse pendrive? Uma nova partição normal com a ferramenta do Windows ou com o Gparted não altera esse layout.

Se alterar o layout da partição não for possível, como posso alterar minha regra do udev para que ela possa lidar com o pendrive que reconhece em / dev / sda ou / dev / sda1?

Obrigado.

Atualização: eu mudei o termo "mount" com "device node" para evitar confusão. Graças a Austin.

    
por why2 01.12.2017 / 14:02

2 respostas

2

Desde que você não tenha dados, é necessário manter o pendrive e ser exibido como /dev/sda , execute o seguinte como root:

wipefs -a /dev/sda

Isso irá apagar a assinatura FAT32 (e quaisquer outras assinaturas do sistema de arquivos também) do dispositivo para que ele apareça como vazio. Nesse ponto, tanto o GParted quanto o gerenciador de disco do Windows devem criar uma tabela de partições ao reformatá-lo. / p>

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, ele pode ser criar os nós do dispositivo em vez do kernel), mas a montagem é uma operação que se refere especificamente aos sistemas de arquivos (mais especificamente, 'montar X a Y' implica que X contém um sistema de arquivos e você está tornando esse sistema de arquivos acessível diretamente no local Y , que não é o que acontece quando os nós de dispositivos são criados).

    
por 01.12.2017 / 14:28
0

Outra solução no Windows é usar diskpart :

  1. Desconecte o pen drive
  2. Execute o terminal do Windows ou digite cmd no campo de pesquisa inicial do Windows.
  3. Digite diskpart e digite list disk na nova janela DiskPart para ver os dispositivos atuais
  4. Conecte o pen drive USB e execute novamente list disk para observar o número correto do disco do pendrive
  5. Digite select disk=<number> . Substitua o <number> pelo número do disco do pendrive que você deseja redefinir.
  6. Execute clean e, em seguida, convert mbr para criar uma nova tabela de partições no pendrive.
  7. Execute o comando create partition primary para criar uma nova partição primária.
por 01.12.2017 / 15:45