Formatei um disco rígido externo (sdc) para ntfs usando o parted, criando uma partição primária (sdc1). Antes de formatar o dispositivo SystemRescueCd foi instalado no disco rígido externo usando o comando dd
para ser usado como um USB inicializável. No entanto, ao listar dispositivos com lsblk -f
ainda estou recebendo o antigo FSTYPE (iso9660) e LABEL (sysrcd-5.2.2) para o dispositivo formatado (sdc):
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ntfs System Reserved
├─sda2 ntfs
├─sda3 ntfs
├─sda4
sdc iso9660 sysrcd-5.2.2
└─sdc1 ntfs sysrcd-5.2.2 /run/media/user/sysrcd-5.2.2
Conforme mostrado na saída lsblk -f
apenas o FSTYPE da partição sdc1
está correto, a sdc1
partição LABEL, sdc
block device FSTYPE e LABEL estão errados. O aplicativo nautilus GUI também está mostrando o rótulo do dispositivo antigo (sysrcd-5.2.2).
Depois de criar uma nova tabela de partições, parted
sugeri que eu reinicializasse o sistema antes de formatar o dispositivo para ntfs , mas decidi desmontar sdc em vez de reiniciar.
- Será que o kernel ainda está usando o antigo FSTYPE e LABEL porque eu não reiniciei o sistema? Tenho que reiniciar o sistema para me livrar do antigo FSTYPE e LABEL?
- Como alternativa à reinicialização, existe uma maneira de renomear o FSTYPE e o LABEL de um dispositivo de bloco manualmente para que eu possa alterá-los para o FSTYPE e o LABEL originais fornecidos com o disco rígido externo?
A partir da saída do
lsblk -f
post original, suspeitei que a assinatura do SystemRescueCd instalado ainda estava presente no disco rígido externo. Então, executei o comandowipefs /dev/sdc
ewipefs /dev/sdc1
imprimiu informações sobresdc
e todas as partições emsdc
:A impressão acima confirmou que a
iso9660
tabela de partição criada pelo SystemRescueCd ainda estava presente.lsblk
estava usando oTYPE
andLABEL
daiso9660
tabela de partição em vez da tabela de partição dos (Master Boot Record). Paralsblk
exibir a tabela de partição correta, a tabela deiso9660
partição teve que ser excluída. Observe quedd
também pode ser usado para eliminar uma assinatura de tabela de partição de um dispositivo de bloco (disco), masdd
também pode eliminar outras tabelas de partição.Como queremos direcionar apenas uma assinatura de tabela de partição específica para limpeza,
wipefs
foi preferível, pois, diferentementedd
de , comwipefs
não teríamos que recriar a tabela de partição novamente. A-a
opção do comandowipefs
apaga todas as assinaturas disponíveis no dispositivo, mas a-t
opção do comandowipefs
quando usada em conjunto com a-a
opção restringe o apagamento de assinaturas apenas a um determinado tipo de tabela de partição. Abaixo, limpamos aiso9660
tabela de partição. A opção-f
(--force
) é necessária ao apagar uma assinatura de tabela de partição em um dispositivo de bloco.Depois de apagar a
iso9660
tabela de partição, verificamos a tabela de partição novamente para confirmar que a tabela de partiçãoiso9660
foi apagada:Mas agora que a tabela de partição problemática
iso9660
foi apagadalsblk
agora está usando oUUID
da partição como o nome do diretório do ponto de montagem, pois o rótulo usado anteriormente daiso9660
tabela de partição não existe mais:podemos verificar quais volumes (ou seja, partições) possuem rótulos no diretório
/dev/disk/by-label
que lista todas as partições que possuem um rótulo:O
ntfs
sistema de arquivos na partiçãosda1
é a única partição que possui um rótuloPara tornar o nome do diretório do ponto de montagem mais legível, alteramos o rótulo do
ntfs
sistema de arquivos na partiçãosdc1
de nada (string vazia) para um "novo rótulo". Os comandos para alterar o rótulo de um sistema de arquivos dependem do sistema de arquivos 1 2 . Para umntfs
sistema de arquivos, a alteração do rótulo é feita com o comandontfslabel
:ntfslabel /dev/sdc1 "new-label"
Agora depois de alterar o rótulo no
ntfs
sistema de arquivoslsblk
usa o"new-label"
como o nome do diretório do mountpoint:Observe: também que o dispositivo
sdc
não possui mais um tipo e rótulo de sistema de arquivos como todos os outros dispositivos de bloco (por exemplo, sda). Somente partições devem ter um tipo de sistema de arquivos, pois o sistema de arquivos está na partição e não no dispositivo, e rótulo, pois o cabeçalho da colunaLABEL
é o rótulo do sistema de arquivos e não o rótulo do dispositivo.Você já tentou reler a tabela de partição (como root)?
lsblk
provavelmente está inspecionando primeiro o primeiro setor para ver qual tipo de sistema de arquivos o dispositivo contém, e somente se nada for encontrado, passará para locais "usuais" para superblocos de sistema de arquivos.Como iso9660 é reconhecível a partir de dados no primeiro setor,
lsblk
não procura mais e extrai o rótulo do volume de lá também.Simplesmente criar uma tabela de partição deixa a maior parte do primeiro setor intacto, e é por isso que você está vendo isso.
Você precisa primeiro limpar o primeiro setor com, por exemplo
dd if=/dev/zero of=/dev/sdc count=1
, e depois recriar a tabela de partição. Se você recriá-lo com os mesmos parâmetros, o sistema de arquivos NTFS criado anteriormente ainda deve estar intacto.