Eu vi essa outra pergunta de Superusuário , mas ela não responde realmente à minha pergunta.
A execução blkid
pode listar partições e rótulos de partição em um disco:
ubuntu@ubuntu:~$ sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
...
sda 111.8G
├─sda1 vfat 350M SYSTEM
├─sda2 ntfs 50G Windows
├─sda3 ntfs 1.5G Recovery
├─sda4 1K
├─sda5 ext4 20G ubuntu
├─sda6 ntfs 30G extra
└─sda7 swap 9.9G [SWAP]
Conforme observado no post vinculado (também encontrado com informações aqui ), posso usar o sfdisk para fazer backup da tabela de partição neste disco /dev/sda
:
sudo sfdisk -d /dev/sda > sda.partition.table.txt
Que poderia então ser usado para restaurar a tabela de partição com:
sudo sfdisk /dev/sda < sda.partition.table.txt
Entretanto, ao imprimir este arquivo, vemos que não há rótulos de partição (no meu exemplo: SISTEMA, Windows, Recuperação, Ubuntu, extra):
$ cat sda.ljuttpx220.partition.table.txt
label: dos
label-id: 0x5e4a12da
device: /dev/sda
unit: sectors
sector-size: 512
/dev/sda1 : start= 2048, size= 716800, type=ef, bootable
/dev/sda2 : start= 718848, size= 104857600, type=7
/dev/sda3 : start= 231292928, size= 3145728, type=27
/dev/sda4 : start= 105578494, size= 125714434, type=5
/dev/sda5 : start= 105578496, size= 41943040, type=83
/dev/sda6 : start= 147523584, size= 62914560, type=7
/dev/sda7 : start= 210440192, size= 20852736, type=82
Então, existe algum comando ou procedimento que me permita fazer backup TANTO das partições QUANTO de seus rótulos de uma só vez?
Você tem uma tabela de partição DOS (MBR). Ela não suporta armazenar rótulos de partição.
A
LABEL
coluna em 'lsblk' e 'blkid' contém o rótulo de metadados do sistema de arquivos , não o rótulo da partição (que seria encontrado emPARTLABEL
discos particionados por GPT).(Além disso,
lsblk
eblkid
não são a mesma coisa. Embora eles eventualmente obtenham seus dados do libblkid, eles os obtêm de maneiras diferentes – blkid chama diretamente o libblkid para extrair os metadados dos dispositivos de disco, enquanto lsblk mostra dados já extraídos do udev. Portanto, blkid geralmente precisa ser executado como root, mas lsblk não, pois depende do udev para manter seu cache atualizado.)O rótulo do sistema de arquivos pode ser feito backup criando uma imagem completa dessa partição (usando dd/cp/etc, ou usando ntfsclone/partclone) ou definido manualmente usando ferramentas específicas do sistema de arquivos (e2label, fatlabel, etc) como parte ou após a criação de um novo sistema de arquivos.
Então, se seu objetivo era clonar um disco existente com seus dados e metadados, você poderia:
clone a tabela de partições usando sfdisk, então clone o conteúdo de cada partição 1:1 usando alguma ferramenta apropriada (
partclone
,ntfsclone
,dd/ddrescue/cp/pv
) e o rótulo do sistema de arquivos será clonado junto com o resto do sistema de arquivos;(Lembre-se de que, como seu disco parece estar configurado para inicialização do BIOS, você também precisa clonar o código de inicialização do MBR , que coexiste no setor 0 com a tabela de partição MBR, mas não é despejado pelo sfdisk. Isso pode ser clonado usando
head -c 440 $old > $new
.)ou clonar o disco inteiro de uma vez (
/dev/sda
→/dev/sdb
) usandodd
/ddrescue
/cp
/pv
e a tabela de partição também será clonada junto com o restante dela, assim como os metadados do sistema de arquivos e o código de inicialização do BIOS.Enquanto isso, se seu objetivo fosse criar partições novas e vazias, você poderia fazer:
Note que a maioria dos sistemas de arquivos também tem um UUID (ou similar) em seus cabeçalhos, e há algumas coisas que rastreiam o UUID e não o rótulo. As várias ferramentas mkfs têm uma opção para especificar um UUID personalizado que você obteve anteriormente da
UUID
coluna em 'lsblk' (novamente, não confunda com o GPTPARTUUID
).