parted linha de comando não obtém o mesmo resultado

3

Eu criei meu disco virtual (1024MB):

~$ dd if=/dev/zero of=MyDrive.img iflag=fullblock bs=1M count=1024 && sync

Caso 1:

Agora, vou configurá-lo com dividido para particionar / formatar o 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

Verificando a partição:

~$ 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" a partir da linha de comando (no terminal; fora do parted), com os mesmos comandos, eu 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

    
por ajcg 22.03.2018 / 23:47

1 resposta

1

parted usa unidades ímpares por padrão, por isso é melhor especificá-lo.

(parted) unit MiB

ou

(parted) mkpart ... 1MiB 1024MiB

Não há necessidade de fazer uma verificação de alinhamento se você souber que sua partição começa em 1MiB .

O comando set 1 lba on altera o tipo de partição para o Linux. Isso pode ser um pouco surpreendente, mas é normal que parted set altere os tipos de partição (outras opções são raid , lvm , ...).

Além desse detalhe, o resultado de suas operações é completamente idêntico. A diferença na saída é meramente um problema óptico.

Pode ser um remanescente do antigo parted que costumava criar os próprios sistemas de arquivos, em vez de partições apenas. (*) Se você quiser que o ntfs permaneça, você realmente precisa mkntfs one.

Seu método interativo:

# dd if=/dev/zero of=MyDrive.img iflag=fullblock bs=1M count=1024 && sync
# parted MyDrive.img 
GNU Parted 3.2
Using /dev/shm/MyDrive.img
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel msdos                                                    

Eu criei uma cópia dele neste momento para que possamos verificar e comparar o outro método:

(parted) ^Z                                                               
[1]+  Stopped                 parted MyDrive.img
# cp MyDrive.img MyDrive-Copy.img
# fg

Em diante:

(parted) mkpart primary NTFS 1 1024
(parted) align-check optimal 1                                            
1 aligned
(parted) print                                                            
Model:  (file)
Disk /dev/shm/MyDrive.img: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  1024MB  1023MB  primary  ntfs         lba

Mostra ntfs e lba , mas imprime novamente e desaparece:

# parted MyDrive.img
GNU Parted 3.2
Using /dev/shm/MyDrive.img
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print                                                            
Model:  (file)
Disk /dev/shm/MyDrive.img: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  1024MB  1023MB  primary

Seu segundo método usando comandos de terminal, executados na cópia:

# parted MyDrive-Copy.img mkpart primary NTFS 1 1024
# parted MyDrive-Copy.img align-check optimal 1
1 aligned
# parted MyDrive-Copy.img print
Model:  (file)
Disk /dev/shm/MyDrive-Copy.img: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  1024MB  1023MB  primary

Existe alguma diferença?

# cmp -l MyDrive.img MyDrive-Copy.img && echo Identical || echo Different
Identical

(Sem o método copy, eles teriam identificadores de disco diferentes, pois é aleatório toda vez que você mkpart . Com partições GPT, cada partição individual também teria um PARTUID exclusivo, portanto o método não se aplica a outros esquemas de particionamento ou em vez disso, você precisa verificar o que os diferentes bytes representam.)

Então, você faz obter o mesmo resultado, a menos que os comandos sejam diferentes (não houve set em seu primeiro exemplo).

(*)

Para tornar a confusão perfeita, após mkntfs na partição, parted detecta a presença do NTFS e set 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 depois de tudo. parted lembra desse tipo para a sessão atual e age de acordo quando seleciona os tipos de partição. Traduzido para o terminal, pode ser melhor fazer tudo em um único comando.

# parted MyDrive.img \
    mklabel msdos \
    mkpart primary NTFS 1 1024 \
    set 1 lba on \
    align-check optimal 1 \
    print

Model:  (file)
Disk /dev/shm/MyDrive.img: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  1024MB  1023MB  primary  ntfs         lba
    
por 23.03.2018 / 00:17

Tags