UUID de uma unidade que não será exibida em / dev / disk / by-uuid ou blkid

12

Eu tenho uma unidade USB que não está recebendo um UUID. Quando olho para o conteúdo do / dev / disk / by-uuid, ele não existe lá. O ponto de desenvolvimento em que a partição está está em / dev / sdb. Eu posso ver o sdb em / dev / disk / by-path. Além disso, ao usar blkid, recebo zero saída. Estou assumindo que recebi um código de erro que retornou.

Existe uma maneira de obter um UUID para esta partição?

Resultado de fdisk -l /dev/sdb:

Disk /dev/sdb: 320.1 GB, 320072932352 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142446 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: 0x00082145

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   625141759   312569856   83  Linux

A tabela de partições e a partição foram criadas com o gparted, portanto, foram particionadas e executaram o comando mkfs.ext3.

Saída de fsck -n / dev / sdb1

fsck from util-linux 2.20.1
e2fsck 1.42 (29-Nov-2011)
fsck.ext2: Superblock invalid, trying backup blocks...
zwei was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
zwei: 11/19537920 files (0.0% non-contiguous), 1275097/78142464 blocks

Foi formatado como uma unidade ext3. Por que isso aparece como ext2?

monksy
fonte
Você precisa esclarecer qual dispositivo você está falando. /dev/sdbnão terá um UUID, mas /dev/sdb1deveria, se tiver sido formatado.
11333 goldilocks
1
Estou me referindo a / dev / sdb1 que está sob / dev / sdb
monksy
Poste a saída de fsck -n /dev/sdb1. Você também pode tentar atribuir um UUID a ele tune2fs -U random /dev/sdb1e ver. Não importa qual é o UUID.
Goldilocks
postou [desculpe se isso está ficando chato]
monksy
1
Sem problemas. O bit "superbloco inválido" pode explicar por que não há UUID. Se você precisar fazer backup de coisas lá, tente montá-lo e fazer isso, então desmonte e fsck -y /dev/sdb1; se você não pode montá-lo, basta executar o fsck e espero que nada seja perdido. Leia man fscka diferença entre -ne -y.
Goldilocks

Respostas:

13

Isso é o que deveria acontecer.

Existem dois usos coloquiais do termo "disco" ou "drive" em jogo aqui: o primeiro refere-se a um dispositivo físico , como um pendrive. O segundo refere-se a uma partição do sistema de arquivos , da qual pode haver várias em um dispositivo físico.

Nós de dispositivo como /dev/sdareferem-se ao primeiro sentido (dispositivos físicos); nós de dispositivo como /dev/sda1referem-se ao segundo (partições do sistema de arquivos). Faz sentido? sda1 é uma partição do sistema de arquivos no disco físico sda. É possível formatar um dispositivo inteiro com uma partição, mas isso é incomum, portanto, em geral, /dev/sdanunca terá um UUID.

As partições do sistema de arquivos possuem UUIDs, os dispositivos físicos não . Eu acredito que eles são criados aleatoriamente quando o sistema de arquivos é criado (e é por isso que eles mudam se você, por exemplo, reformatar uma partição e por que, se você bloquear o nível de copiar uma partição e criar uma nova partição com a imagem, você terá duas partições com o mesmo UUID).

Portanto, lembre-se de que o UUID é criado quando a partição é formatada . Quando você particiona um disco (por exemplo, com o fdisk), não está formatando nada, apenas está definindo o tipo de partição (e tamanho, etc.) na tabela de partições, para que as novas partições não formatadas não tenham um UUID.

Por fim, como é a ferramenta usada para formatar a partição que define o UUID, pode ser possível que ferramentas muito antigas não o façam. No entanto, você sempre pode definir um novo (para ext) com tune2fs, por exemplo:

tune2fs -U random /dev/whatever
Cachinhos Dourados
fonte
SDA é minha unidade principal. SDB, SDD, etc, são unidades USB. Atualizei minha resposta para incluir o fdisk -l para provar que ele possui uma partição.
11133 monksy
@monksy: e o nó do dispositivo que não informa um UUID é /dev/sdb1ou /dev/sdb? O posterior não deveria. Além disso, a saída do fdisk não indica que uma partição está formatada e, portanto, não prova que ela deve ter um UUID disponível. Adicionei alguns parágrafos curtos acima para explicar isso.
11253 goldilocks
Está formatado. Quando conectado [itens de pré-instalação], o gnome automounter o abriria. Eu não estou recebendo um UUID para sdb1. O fdisk-l é apenas prova de que existe uma partição não
monksy
1
Eu tive que reiniciar antes da partição aparecer /dev/disk/by-uuid(Ubuntu 16.04, mas provavelmente afeta outras pessoas). Então (1) crie partição (ões) e sistema (s) de arquivos, (2) reinicie. Provavelmente existe uma maneira de não reinicializar, mas eu preferi verificar se tudo sai de uma inicialização a frio, para não investigar.
Fazy
2

O / dev / disk / by-uuid é preenchido na inicialização pelo programa "partprobe". Se você tiver um disco ou partição que o partprobe não pode reconhecer, o partprobe falhará com erro e interromperá a varredura do restante das partições:

root@machine1:~# partprobe 
Error: /dev/mapper/sda5_crypt: unrecognised disk label
root@machine1:~# 

Obviamente, isso é erro na parte do probe . Provavelmente específico para o ubuntu 14.04 (confiável). A solução alternativa é executar o partprobe explicitamente na partição que não foi varrida:

root@machine1:~# partprobe /dev/sdd1

Observe que o partprobe é iniciado várias vezes como resultado de todas as operações de gerenciamento de disco, portanto, a solução alternativa é de curta duração.

Arie Skliarouk
fonte
2

Eu descobri que file -spode dar o UUID para uma partição em um caso em blkidque não:

sudo file -s /dev/sda1
/dev/sda1: Linux rev 1.0 ext2 filesystem data (mounted or unclean), UUID=ef55765f-dae5-426f-82c4-0d98265c5f21 (needs journal recovery)
mwfearnley
fonte
1

Tente sudo com o ls -l /dev/disk/by-uuidoublkid /dev/sdb1

Eu também tenho um particionado + formatado sdb1, por algum motivo, ele não aparece na lista, a menos que eu o use sudo.

Gulchrider
fonte