Criei meu disco virtual (1024MB):
~$ dd if=/dev/zero of=MyDrive.img iflag=fullblock bs=1M count=1024 && sync
Caso 1:
Agora vou configurar com dentro parted para particionar/formatar MyDrive.img:
~$ parted MyDrive.img
(parted) mklabel msdos
(parted) mkpart primary NTFS 1 1024
(parted) align-check optimal 1
Resultado:
(parted) print
Model: (file)
Disk /home/user/test/MyDrive.img: 1074MB
Sector size (logical / physical): 512B / 512B
Table of partitions: msdos
Disk Flags:
Start Number End Size Type File system Flags
1 1049kB 1024MB 1023MB primary ntfs lba
~$ sudo losetup loop1 MyDrive.img
~$ sudo -H gparted /dev/loop1
Até agora tudo bem. Agora o problema...
Caso 2:
Se eu quiser iniciar o "parted" na linha de comando (no terminal; fora do parted), com os mesmos comandos, não obtenho o mesmo resultado:
~$ parted -s MyDrive.img mklabel msdos
~$ parted -s MyDrive.img mkpart primary NTFS 1 1024
~$ parted -s MyDrive.img align-check optimal 1
~$ parted -s MyDrive.img set 1 lba on
Fora:
~$ parted -s MyDrive.img print
Model: (file)
Disk /home/user/test/MyDrive.img: 1074MB
Sector size (logical / physical): 512B / 512B
Table of partitions: msdos
Disk Flags:
Start Number End Size Type File system Flags
1 1049kB 1024MB 1023MB primary
Problema: Faltando NTFS e LBA (A mesma coisa acontece com ext3, ext4, etc)
Causa:
~$ parted -s MyDrive.img mklabel msdos # Works
~$ parted -s MyDrive.img mkpart primary NTFS 1 1024 # Not Work
~$ parted -s MyDrive.img align-check optimal 1 # Works
~$ parted -s MyDrive.img set 1 lba on # Not Work
Pergunta:
Como executar corretamente "parted" com a opção "-s" (--script) diretamente da linha de comando no terminal (caso 2) para obter a mesma saída (caso 1)?
Obrigado
parted
usa unidades ímpares por padrão, então é melhor especificá-lo.ou
Não há necessidade de fazer uma verificação de alinhamento se você souber que sua partição começa em
1MiB
.O
set 1 lba on
comando realmente altera o tipo de partição para Linux. Isso pode ser uma surpresa, mas é normal que oparted
'sset
altere os tipos de partição (outras opções sãoraid
,lvm
, ...).Tirando esse detalhe, o resultado de suas operações são completamente idênticos. A diferença na saída é apenas um problema óptico.
Pode ser um resquício do antigo(*) Se você quiserparted
que costumava criar os próprios sistemas de arquivos, em vez de apenas partições.ntfs
colar, você realmente precisa demkntfs
um.Seu método interativo:
Eu crio uma cópia dele neste ponto para que possamos verificar e comparar o outro método:
Em diante:
Mostra
ntfs
elba
imprime de novo e sumiu:Seu segundo método usando comandos de terminal, executado na cópia:
Realmente existem diferenças?
(Sem o método de cópia, eles teriam identificadores de disco diferentes, pois é aleatório toda vez que você
mkpart
. Com as partições GPT, cada partição individual também teria um PARTUUID exclusivo, portanto, o método não se aplica a outros esquemas de particionamento, ou melhor, você deve verificar o que os diferentes bytes representam.)Portanto, você obtém o mesmo resultado, a menos que os comandos sejam diferentes (não havia nenhum
set
em seu primeiro exemplo).(*)
Para tornar a confusão perfeita, depois
mkntfs
na partição,parted
detecta a presença de NTFS eset 1 lba on
não define mais o Linux como tipo de partição. Isso também significa que, com dados aleatórios no disco, você pode obter resultados aleatórios em sua tabela de partições.Portanto, pode haver um ponto para especificar o NTFS quando você,
mkpart
afinal.parted
lembra desse tipo para a sessão atual e age de acordo ao escolher os tipos de partição. Traduzido para o terminal, pode ser melhor fazer tudo em um único comando.