Como faço para criar e ajustar uma partição ext4 a partir da linha de comando?

34

PARTITIONING (por exemplo, fdisk )
Quais são alguns dos comandos úteis usados para particionar um disco rígido adicional a partir da linha de comando? Como a maioria dos guias publicados dirige-se ao GParted e a outros utilitários gráficos, um resumo de algumas sequências de linha de comando seria útil.

TUNING - ESPAÇO RESERVADO, WRITE-BACK & TEMPOS DE ACESSO
Como remover o espaço reservado em disco reservado (por padrão) caso a unidade esteja 100% cheia. Como eu sou uma unidade secundária simplesmente para 'dados', a remoção da área reservada garante que a unidade inteira esteja disponível para uso.

Também estou curioso sobre write-through versus write-back e pulando a atualização dos tempos de acesso (em arquivos e diretórios) para melhorar o desempenho.

    
por gth 30.11.2013 / 06:12

2 respostas

52

Primeiramente:

!! AVISO !!

Estes comandos são EXEMPLOS . EXCLUIR partições, MODIFICAR e FORMATAR sistemas de arquivos destrói dados e / ou pode impedir que sua máquina inicialize. Faça backups. Use a risco próprio. Tente em uma máquina que você não se importa em perder todos os dados. advertência admin.

Para configurar rapidamente uma unidade como uma única partição ext4 ...
  1. Ver dispositivos detectados da classe "DISK"

    lshw -C disk
    
  2. Ver tabela (s) de partição existente (s)

    fdisk -l
    
  3. Edite a tabela de partições para o meu dispositivo escolhido (neste caso, "sdx")

    fdisk /dev/sdx
    

    Dentro do FDISK, pressione:

    • d ... para d eletear a partição atual

    • n ... para criar uma partição n ew

    • p ... para especificá-lo como uma partição RIMARY P

    • 1 ... para configurá-lo como a partição primária 1 ST

    • w ... até w rite as alterações.

  4. Exibir a nova tabela de partições:

    fdisk -l
    
  5. Formate o sistema de arquivos da nova partição como tipo ext4

    mkfs -t ext4 /dev/sdx1
    
  6. Crie um novo diretório no qual a nova unidade será montada:

    mkdir /storage
    mount /dev/sdx1 /storage
    

TUNING

  1. Remova os blocos reservados (isto é, defina como 0%), pois esse drive é apenas para dados do usuário

    tune2fs -m 0 /dev/sdx1
    
  2. Como o servidor está no no-break, defina o write-back para que os aplicativos não esperem pelas gravações reais do disco

    tune2fs -o journal_data_writeback /dev/sdx1
    
  3. Monte na inicialização usando /etc/fstab e também defina a política de write-back

    vi /etc/fstab
    
  4. Encontre (ou adicione) a linha relevante em fstab para o seu disco. Os parâmetros no fstab são separados por espaço em branco, por exemplo, a unidade descrita acima pode aparecer como:

    /dev/sdx1 /storage ext4 relatime,errors=remount-ro 0 1
    
    • O primeiro parâmetro identifica a partição (por / dev / ou um longo UUID);
    • O segundo parâmetro é o caminho para o qual a partição será montada;
    • O terceiro é o tipo de sistema de arquivos;
    • O quarto parâmetro contém as opções;
    • Quinto é o agendamento dump para backups; e,
    • O sexto parâmetro é número de passagem (usado para controlar fsck order).

Altere as opções (quarto parâmetro) para:

noatime,nodiratime,data=writeback,barrier=0,nobh,errors=remount-ro

Reinicialize para verificar se tudo correu bem.
Lembre-se de que esses comandos são destrutivos! Tenha backups e tenha cuidado!

    
por gth 30.11.2013 / 06:12
10

Usando parted

Abaixo as instruções para criar uma nova partição ext4 em um novo disco rígido com parted (testado no Ubuntu 14.04.4 LTS x64). parted suporta Tabela de Partição GUID (GPT) e subsequentemente pode ser usado para partições acima de 2 TB, ao contrário de fdisk . / p>

Use sudo lshw -C disk *-disk para ver o nome lógico do seu novo disco rígido:

   description: ATA Disk
   product: ST6000NM0024-1HT
   vendor: Seagate
   physical id: 0.0.0
   bus info: [email protected]:0.0.0
   logical name: /dev/sdb
   version: SN05
   serial: Z4D30T30
   size: 5589GiB (6001GB)
   configuration: ansiversion=5 sectorsize=4096

O nome lógico é /dev/sdb . Nós podemos começar:

sudo parted /dev/sdb mklabel gpt # Creating the GUID Partition Table (GPT)

Com sudo parted /dev/sdb print , podemos ver o GPT criado:

[email protected]:~$ sudo parted /dev/sdb print
Model: ATA ST6000NM0024-1HT (scsi)
Disk /dev/sdb: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags

Também precisamos saber o tamanho do disco (usaremos o MB como unidade):

sudo parted /dev/sdb print unit MB print free

que indica:

Disk /dev/sdb: 6001175MB

Agora podemos criar a partição primária para que ocupe todo o espaço do disco rígido. Para definir o rótulo da partição:

sudo parted --align optimal /dev/sdb mkpart primary ext4 0% 6001175MB 

(veja link se você quiser saber por que usamos --align optimal )

Com sudo parted /dev/sdb print , podemos ver o rótulo da partição principal criado:

[email protected]:~$ sudo parted /dev/sdb print
Model: ATA ST6000NM0024-1HT (scsi)
Disk /dev/sdb: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  6001GB  6001GB  xfs          primary

Em seguida, precisamos usar o mkfs para criar a partição:

sudo mkfs.ext4 /dev/sdb1

A partição agora é criada, precisamos montá-la. Para fazer isso, sudo nano /etc/fstab e adicione a seguinte linha ( /crimea é a pasta na qual escolhemos montar a nova partição):

/dev/sdb1       /crimea ext4 defaults   0       0      

Criamos a pasta e recarregamos /etc/fstab :

sudo mkdir /crimea
sudo mount -a # Remount /etc/fstab without rebooting in Linux

Você pode ver a nova partição montada usando df -h :

/dev/sdb1                      5.5T   58M  5.2T   1% /crimea

Em sudo nano /etc/fstab , em vez de usar /dev/sdb1 , você pode usar seu UUID , que pode ser encontrado com sudo lshw -C volume :

*-volume
       description: EXT4 volume
       vendor: Linux
       physical id: 1
       bus info: [email protected]:0.0.0,1
       logical name: /dev/sdb1
       logical name: /crimea
       version: 1.0
       serial: c3559307-795b-66db-9844-8e974c88a1cf
       size: 200MiB
       capacity: 5589GiB
       capabilities: journaled extended_attributes huge_files dir_nlink extents ext4 ext2 initialized
       configuration: created=2016-06-24 14:56:55 filesystem=ext4 lastmountpoint=/boot modified=2016-07-01 17:15:55 mount.fstype=ext4 mount.options=rw,relatime,data=ordered mounted=2016-07-01 17:07:19 name=primary state=mounted

Caso contrário, você poderia simplesmente fazer sudo blkid /dev/sdb1 :

/dev/sdb1: UUID="c3559307-795b-66db-9844-8e974c88a1cf" TYPE="ext4"

A nova linha /etc/fstab será:

UUID=c3559307-795b-66db-9844-8e974c88a1cf          5.5T   58M  5.2T   1% /crimea
O

link explica por que é melhor usar o UUID (liquidat, cc by-sa 3.0):

The advantage of using the UUID is that it is independent from the actual device number the operating system gives your hard disk. Image you add another hard disk to the system, and for some reason the OS decides that your old disk is now sdb instead of sba. Your boot process would be screwed up if fstab would point to the device name. However, in case of the UUIDs, it would be fine.

Resumo:

sudo lshw -C disk                # Checking the location of the new drive. It is /dev/sdb.     
sudo parted /dev/sdb mklabel gpt # Creating the GUID Partition Table (GPT)
sudo parted /dev/sdb print       # Checking that the GPT has been created
sudo parted /dev/sdb print unit MB print free # see 6001175MB size
sudo parted --align optimal /dev/sdb mkpart primary ext4 0% 6001175MB # Creating partition label
sudo mkfs.ext4 /dev/sdb1         # Creating the partition
sudo nano /etc/fstab             # Add line '/dev/sdb1 /crimea ext4 defaults 0 0'
sudo mount -a # Remount /etc/fstab without rebooting
    
por Franck Dernoncourt 13.08.2016 / 22:53