Exemplos práticos de comandos com Parted

Republicado de www.vivaolinux.com.br

Exemplos práticos de comandos com Parted

Autor: Lisandro Guerra <lisandro.digital at gmail.com>
Data: 03/10/2011

Selecionar disco e mostrar as partições



1) Selecionar o disco a ser particionado


Quando se executa o utilitário parted sem nenhum argumento, ele seleciona por padrão (default) o primeiro disco disponível no sistema.

Vamos a um exemplo:

sudo parted
[sudo] password for lisandro:
GNU Parted 2.3
Usando /dev/sda
Bem vindo ao GNU Parted! Digite 'help' para visualizar uma lista de comandos.
(parted)


Nesse exemplo ele pegou automaticamente /dev/sda, meu primeiro disco no sistema.

Pode observar que no fim da execução fica o cursor aguardando comandos ao parted, bastando escrever diretamente no cursor o comando desejado.

Vamos dar uma olhada no "help":

(parted) help
  align-check TIPO N #verifica a partição N para alinhamento TIPO(min|opt)
  check NUMERO #faz um teste simples no sistema de arquivos
  cp [DO-DISPOSITIVO] DO-NÚMERO PRO-NÚMERO #copia o sistema de arquivos para outra partição
  help [COMANDO] #exibe a ajuda geral, ou a ajuda sobre COMANDO
  mklabel,mktable TIPO-DE-RÓTULO #cria um novo rótulo de disco (tabela de partição)
  mkfs NÚMERO FS-TYPE #cria um sistema de arquivos FS-TYPE na partição NÚMERO
  mkpart TIPO-PART [TIPO-FS] INÍCIO FIM  #cria uma partição
  mkpartfs TIPO-PART TIPO-FS INÍCIO FIM  #cria uma partição com um sistema de arquivos
  move NUMERO INICIO FIM  #move a partição NUMERO
  name NUMERO NOME #renomeia a partição NUMERO para NOME
  print [devices|free|list,all|NÚMERO] #mostra a tabela de partição, dispositivos disponíveis, espaço livre, todas as partições encontradas, ou uma partição em específico (definida por NÚMERO)
  quit #sair do programa
  rescue INICIO FIM #recupera uma partição perdida próxima ao INICIO e FIM
  resize NUMERO INICIO FIM #redimensiona a partição NUMERO e seu sistema de arquivos
  rm NUMERO #apaga a partição NUMERO
  select DEVICE #seleciona o dispositivo a editar
  set NUMERO FLAG ESTADO #altera a FLAG na partição NUMERO
  toggle [NUMBER [FLAG]] #altera o estado da flag na partição NUMBER
  unit UNIDADE  #define a unidade padrão como UNIDADE
  versão #exibe o número da versão e informações sobre copyright do GNU Parted

Para selecionar outro disco usamos o comando "select", como abaixo:

(parted) select /dev/sdb
Erro: Não foi possível receber informações do dispositivo /dev/sdb - Arquivo ou diretório não encontrado.
Repetir/Retry/Cancelar/Cancel?

Opa! Essa mensagem de erro ocorre quando o disco não é localizado ou o nome não é o fornecido. Vou conectar um pendrive e tentar novamente:

(parted) select /dev/sdb
Usando /dev/sdb
(parted)

Agora sim, funcionou perfeitamente.

2) Mostrar todas as partições

Podemos mostrar na tela as partições usando o comando "print", ele ainda mostra outras informações, como as propriedades do disco, modelo, tamanho, tabela de partições e tamanho do setor...

Vejamos um exemplo:

(parted) print
Modelo: SanDisk Cruzer Blade (scsi)
Disco /dev/sdb: 2001MB
Tamanho de setor (lógico / físico): 512B/512B
Tabela de Partição: msdos
Número  Início  Fim     Tamanho  Tipo     Sistema de arquivos  Sinalizador
 1      66,0kB  2000MB  2000MB   primary  fat16                iniciação
(parted)

Vou trocar para o /dev/sda e tentar o "print", veja só:

(parted) select /dev/sda
Usando /dev/sda
(parted) print
Modelo: ATA ST3160812AS (scsi)
Disco /dev/sda: 160GB
Tamanho de setor (lógico / Físico): 512B/512B
Tabela de Partição: msdos
Número  Início  Fim    Tamanho  Tipo      Sistema de arquivos  Sinalizador
 1      1049kB  112GB  112GB    primary   ext4                 iniciação
 2      112GB   160GB  47,8GB   extended
 6      112GB   117GB  4802MB   logical   linux-swap(v1)
 5      117GB   160GB  43,0GB   logical   ext4
(parted)

Bem útil! Não acharam?

Bom, para os próximos exemplos vou voltar ao meu pendrive em /dev/sdb. É só usar o "select" novamente, mas agora você já sabe.


Criar partições e sistemas de arquivos



3) Criando partição primária

O comando "mkpart" é usado para criar as partições, tanto as primárias como as lógicas, desde que sejam fornecidas as posições inicial e final no disco.

Vamos ver um exemplo criando uma partição de 1GB passando as posições ao comando, ficando atentos ao fato que a unidade está em MB.
Bom, mas primeiro vou apagar aquela minha partição do pendrive fazendo:

(parted) rm
Número da partição? 1
(parted)

Ou se preferir passar as informações direto para o comando, ficaria assim:

(parted) rm 1
(parted)

Pronto, agora vou criar a partição com o "mkpart" e em seguida verificar com o "print":

(parted) mkpart primary 6 1031
(parted) print
Modelo: SanDisk Cruzer Blade (scsi)
Disco /dev/sdb: 2001MB
Tamanho de setor (lógico / Físico): 512B/512B
Tabela de Partição: msdos
Número  Início  Fim     Tamanho  Tipo     Sistema de arquivos  Sinalizador
 1      6291kB  1031MB  1024MB   primary
(parted)

Aí está. Partição primária criada.

Agora vamos marcar a partição como habilitada para boot usando o comando "set":

(parted) set
Número da partição? 1
Marcar para inverter (flag: 'Invert')? boot
Novo estado? [on]/desligado/off? on
(parted)

Outra opção seria passar direto ao comando os parâmetros:

(parted) set 1 boot on

Seja qual for o método que escolheu, vamos verificar o resultado:

(parted) print
Modelo: SanDisk Cruzer Blade (scsi)
Disco /dev/sdb: 2001MB
Tamanho de setor (lógico / Físico): 512B/512B
Tabela de Partição: msdos
Número  Início  Fim     Tamanho  Tipo     Sistema de arquivos  Sinalizador
 1      6291kB  1031MB  1024MB   primary                       iniciação
(parted)

Perfeito!

4) Criando uma partição lógica

Vamos usar o mesmo comando, mas agora vamos criar uma partição lógica de 480MB usando mais uma parte do disco. Mas antes vamos criar a partição estendida, que vai abrigar a lógica. Da mesma forma que fiz com a primária, forneci as posições inicial e final e depois de executado coloquei na tela com um "print" para ver o resultado:

(parted) mkpart extended 1032 2000
(parted) print
Modelo: SanDisk Cruzer Blade (scsi)
Disco /dev/sdb: 2001MB
Tamanho de setor (lógico / Físico): 512B/512B
Tabela de Partição: msdos
Número  Início  Fim     Tamanho  Tipo      Sistema de arquivos  Sinalizador
 1      6291kB  1031MB  1024MB   primary                        iniciação
 2      1032MB  2000MB  968MB    extended                       lba
(parted)

Agora sim podemos criar a parição lógica e verificar o resultado:

(parted) mkpart logical 1033 1513
(parted) print
Modelo: SanDisk Cruzer Blade (scsi)
Disco /dev/sdb: 2001MB
Tamanho de setor (lógico / Físico): 512B/512B
Tabela de Partição: msdos
Número  Início  Fim     Tamanho  Tipo      Sistema de arquivos  Sinalizador
 1      6291kB  1031MB  1024MB   primary   
 2      1032MB  2000MB  968MB    extended                       lba
 5      1033MB  1513MB  480MB    logical
(parted)

Ficou bonito.

Como podemos ver iniciei a partição lógica no começo da estendida.

Repararam que as partições quando são criadas assim ficam sem sistema de arquivos definido?

Vamos criar os sistemas de arquivos?

5) Criando o sistema de arquivos

Com o comando "mkfs" podemos criar um sistema de arquivos em uma partição, lembrando que todos os dados existentes na partição serão perdidos no processo. São suportados na versão 2.3 os sistemas ext2, ext4, fat16, fat32, linux-swap, reiserfs e um tal de mips. Claro que reiserfs só funcionará se a biblioteca dele estiver instalada (libreiserfs).

Vamos aos exemplos com "mkfs" então.

Para criar ext4 na primária:

(parted) mkfs AVISO: você está tentando usar parted para operar em um sistema de arquivos mkfs. O código de manipulação do sistema de arquivos parted não é tão robusto quanto o que irá encontrar em um pacote dedicado, específico para o sistema de arquivos como o e2fsprogs. Nós recomendamos que você use parted somente para manipular tabelas de partição, quando possível.

O suporte à realização da maioria das operações da maioria dos tipos de sistema de arquivos será removida em um lançamento futuro.

Aviso: O sistema de arquivos será destruído e todos os dados existentes na partição serão perdidos. Deseja continuar?
Sim/Yes/Não/No? Sim
Número da partição? 1
Tipo de sistema de arquivos? [ext2]? ext4
(parted)

Vamos verificar:

(parted) print
Modelo: SanDisk Cruzer Blade (scsi)
Disco /dev/sdb: 2001MB
Tamanho de setor (lógico / Físico): 512B/512B
Tabela de Partição: msdos
Número  Início  Fim     Tamanho  Tipo      Sistema de arquivos  Sinalizador
 1      6291kB  1031MB  1024MB   primary   ext4                iniciação, lba
 2      1032MB  2000MB  968MB    extended                       lba
 5      1033MB  1513MB  480MB    logical
(parted) Para mudar o sistema de arquivos da partição que acabamos de criar como ext4 para ficar como fat32 fazemos:

(parted) mkfs
AVISO: você está tentando usar parted para operar em um sistema de arquivos mkfs. O código de manipulação do sistema de arquivos parted não é tão robusto quanto o que irá encontrar em um pacote dedicado, específico para o sistema de arquivos como o e2fsprogs. Nós recomendamos que você use parted somente para manipular tabelas de partição, quando possível.

O suporte à realização da maioria das operações da maioria dos tipos de sistema de arquivos será removida em um lançamento futuro.

Aviso: O sistema de arquivos será destruído e todos os dados existentes na partição serão perdidos. Deseja continuar?
Sim/Yes/Não/No? Sim
Número da partição? 1
Tipo de sistema de arquivos? [ext2]? fat32
(parted)

Vamos verificar:

(parted) print
Modelo: SanDisk Cruzer Blade (scsi)
Disco /dev/sdb: 2001MB
Tamanho de setor (lógico / Físico): 512B/512B
Tabela de Partição: msdos
Número  Início  Fim     Tamanho  Tipo      Sistema de arquivos  Sinalizador
 1      6291kB  1031MB  1024MB   primary   fat32                iniciação, lba
 2      1032MB  2000MB  968MB    extended                       lba
 5      1033MB  1513MB  480MB    logical
(parted) Faça mais alguns testes.

Moleza hein!

E se quisermos criar a partição já com o sistema de arquivos?

6) Criando partições e sistemas de arquivos simultaneamente

Usando o comando "mkpartfs" podemos criar partições já com o sistema de arquivos especificado. É como se fosse o "mkpart" e o "mkfs" ao mesmo tempo, o sistema continua o mesmo no que tange a passar os dados para o comando, mas agora vamos informar tipo de partição, tipo de sistema de arquivos e os limites da partição.

Para exemplificar, vamos criar uma partição lógica com o restante do disco e já com sistema de arquivos fat16:

(parted) mkpartfs logical fat16 1514 2000
AVISO: você está tentando usar parted para operar em um sistema de arquivos mkpartfs. O código de manipulação do sistema de arquivos parted não é tão robusto quanto o que irá encontrar em um pacote dedicado, específico para o sistema de arquivoscomo o e2fsprogs. Nós recomendamos que você use parted somente para manipular tabelas de partição, quando possível.

O suporte à realização da maioria das operações da maioria dos tipos de sistema de arquivos será removida em um lançamento futuro.
(parted)

Vejamos o resultado:

(parted) print
Modelo: SanDisk Cruzer Blade (scsi)
Disco /dev/sdb: 2001MB
Tamanho de setor (lógico / físico): 512B/512B
Tabela de Partição: msdos
Número  Início  Fim     Tamanho  Tipo      Sistema de arquivos  Sinalizador
 1      6291kB  1031MB  1024MB   primary   fat32                iniciação, lba
 2      1032MB  2000MB  968MB    extended                       lba
 5      1033MB  1513MB  480MB    logical   
 6      1514MB  2000MB  485MB    logical   fat16                lba
(parted)

Pronto, bem mais prático esse comando.

Também podemos redimensionar partições e copiar dados, veja na próxima página.


Redimensionar e copiar dados entre partições



7) Redimensionando uma partição

Para redimensionar uma partição usamos o comando "resize". Esse comando permite que se diminua ou aumente o tamanho da partição (havendo espaço é lógico).

Podemos usar o comando sem parâmetros ou indicar o número da partição. Seja qual for o método é apresentada uma advertência prevenindo que a funcionalidade não é muito robusta.

Antes de começar o teste criei um sistema de arquivos ext2 na partição lógica 5 que já tínhamos antes:

(parted) mkfs
AVISO: você está tentando usar parted para operar em um sistema de arquivos mkfs. O código de manipulação do sistema de arquivos parted não é tão robusto quanto o que irá encontrar em um pacote dedicado, específico para o sistema de arquivos como o e2fsprogs. Nós recomendamos que você use parted somente para manipular tabelas de partição, quando possível.

O suporte à realização da maioria das operações da maioria dos tipos de sistema de arquivos será removida em um lançamento futuro.

Aviso: O sistema de arquivos será destruído e todos os dados existentes na partição serão perdidos. Deseja continuar? Sim/Yes/Não/No? Sim
Número da partição? 5
Tipo de sistema de arquivos? [ext2]? ext2
(parted)

Agora sim, vamos ao teste mesmo, que será reduzir a partição 6 (fat16) e aumentar a partição 5 (ext2). Mãos a obra:

(parted) resize
AVISO: você está tentando usar parted para operar em um sistema de arquivos resize. O código de manipulação do sistema de arquivos parted não é tão robusto quanto o que irá encontrar em um pacote dedicado, específico para o sistema de arquivos como o e2fsprogs. Nós recomendamos que você use parted somente para manipular tabelas de partição, quando possível.

O suporte à realização da maioria das operações da maioria dos tipos de sistema de arquivos será removida em um lançamento futuro.

Número da partição? 6
Iniciar? [1514MB]? 1600
Fim? [2000MB]? 2000
Informação: Você gostaria de usar FAT32? Se deixar seu sistema de arquivos como FAT16, não haverá problemas. Se você converter para FAT32, e o MS Windows está instalado nesta partição, você deverá reinstalar o gerenciador de boot do MS Windows. Se quiser fazer isso, consulte o manual do Parted (ou o manual de sua distribuição). Também, convertendo para FAT32 fará com que o sistema de arquivos não seja mais reconhecido pelo MS DOS, Windows 95a, e MS Windows NT. Sim/Yes/Não/No/Cancelar/Cancel? Não
(parted)

Ele oferece para mudar para fat32 com toda uma explicação, mas aqui para nosso objetivo isso não é relevante, então simplesmente coloquei "Não" e o processo continuou.

Vejamos se deu certo:

(parted) print
Modelo: SanDisk Cruzer Blade (scsi)
Disco /dev/sdb: 2001MB
Tamanho de setor (lógico / Físico): 512B/512B
Tabela de Partição: msdos
Número  Início  Fim     Tamanho  Tipo      Sistema de arquivos  Sinalizador
 1      6291kB  1031MB  1024MB   primary   fat32                iniciação, lba
 2      1032MB  2000MB  968MB    extended                       lba
 5      1033MB  1513MB  480MB    logical   ext2
 6      1600MB  2000MB  400MB    logical   fat16                lba
(parted)

Ótimo, foi como esperávamos. Agora vamos aumentar a partição 5. Nesse exemplo vou passar para o comando o número da partição:

(parted) resize 5
AVISO: você está tentando usar parted para operar em um sistema de arquivos resize. O código de manipulação do sistema de arquivos parted não é tão robusto quanto o que irá encontrar em um pacote dedicado, específico para o sistema de arquivos como o e2fsprogs. Nós recomendamos que você use parted somente para manipular tabelas de partição, quando possível.

O suporte à realização da maioria das operações da maioria dos tipos de sistema de arquivos será removida em um lançamento futuro.
Iniciar? [1033MB]? 1033
Fim? [1513MB]? 1600
Aviso: Uma operação de redimensionamento sobre este sistema de arquivo usará código EXPERIMENTAL que PODE CORROMPÊ-LO (embora nenhuma ocorrência tenha sido relatada). Você deveria ao menos fazer cópia de segurança de seus dados primeiro, e depois executar "e2fsck -f". OK/Cancelar/Cancel? ok
(parted)

Novamente avisos sobre riscos e uso de código experimental, que demonstra a responsabilidade e o comprometimento dos desenvolvedores. Muito bom...

Vamos ver se deu certo e aproveitar para dar uma dica. Não usaremos o comando "print" mas o comando "p" (pode ser que seja um alias) que nos dá o mesmo resultado:

(parted) p
Modelo: SanDisk Cruzer Blade (scsi)
Disco /dev/sdb: 2001MB
Tamanho de setor (lógico / Físico): 512B/512B
Tabela de Partição: msdos
Número  Início  Fim     Tamanho  Tipo      Sistema de arquivos  Sinalizador
 1      6291kB  1031MB  1024MB   primary   fat32                iniciação, lba
 2      1032MB  2000MB  968MB    extended                       lba
 5      1033MB  1600MB  567MB    logical   ext2
 6      1600MB  2000MB  400MB    logical   fat16                lba
(parted)

Feito. Tudo como esperado.

Agora vamos ver como copiar dados entre as partições.

8) Copiando os dados de uma partição para outra

Todos os dados de uma partição podem ser copiados de uma vez para outra (pode configurar um clonagem) usando o comando "cp" acompanhado de dois parâmetros, primeiro o número da partição origem e em seguida o da de destino. Lembre-se que qualquer conteúdo na partição de destino será apagado definitivamente, tão logo o processo de cópia inicie e de que o tamanho da partição que receberá os dados deve ser suficiente para armazená-los.

Uma peculiaridade é que, se os sistemas de arquivos forem diferentes, a partição de destino recebe também o sistema de arquivos da de origem. Ou seja, se o sistema de arquivos for diferente entre as partições envolvidas, a partição de destino será alterada para o mesmo tipo da partição de origem.

Para exemplificar copiei dois arquivos de texto pequenos para dentro da partição 1 (fat32) e depois usei o comando "cp" para copiar os dados para a partição 6 (fat16):

(parted) cp 1 6
AVISO: você está tentando usar parted para operar em um sistema de arquivos cp. O código de manipulação do sistema de arquivos parted não é tão robusto quanto o que irá encontrar em um pacote dedicado, específico para o sistema de arquivos como o e2fsprogs. Nós recomendamos que você use parted somente para manipular tabelas de partição, quando possível.

O suporte à realização da maioria das operações da maioria dos tipos de sistema de arquivos será removida em um lançamento futuro.
(parted)

Vejamos o resultado:

(parted) p
Modelo: SanDisk Cruzer Blade (scsi)
Disco /dev/sdb: 2001MB
Tamanho de setor (lógico / Físico): 512B/512B
Tabela de Partição: msdos
Número  Início  Fim     Tamanho  Tipo      Sistema de arquivos  Sinalizador
 1      6291kB  1031MB  1024MB   primary   fat32                iniciação, lba
 2      1032MB  2000MB  968MB    extended                       lba
 5      1033MB  1600MB  567MB    logical   ext2
 6      1600MB  2000MB  400MB    logical   fat32                lba

(parted)      
Verifiquei o conteúdo das partições e realmente os aquivos foram copiados. Como podemos ver no resultado do comando "p" o sistema de arquivos da partição 6 (destino) que era fat16 passou a ser fat32.

Agora observe que a partição de destino é menor que a de origem, mas como tamanho dos dados não excedem o da partição a cópia foi feita normalmente.

Bem amigos, ficamos por aqui.

Espero que tenham gostado do utilitário Parted. Eu gostei...

Até uma próxima oportunidade.

Fontes:



Comentários