¿Cómo creo y ajusto una partición ext4 desde la línea de comandos?

41

PARTICIONAMIENTO (p fdisk. Ej. )
¿Cuáles son algunos comandos útiles utilizados para particionar un disco duro adicional desde la línea de comandos? Como la mayoría de las guías publicadas se dirigen hacia GParted y otras utilidades gráficas, sería útil un resumen de algunas secuencias de línea de comandos.

SINTONIZACIÓN : ESPACIO RESERVADO, ESCRITURA Y TIEMPOS DE ACCESO
Cómo eliminar el espacio reservado en el disco reservado (por defecto) en caso de que la unidad se llene al 100%. Como I es una unidad secundaria simplemente para 'datos', la eliminación del área reservada garantiza que toda la unidad esté disponible para su uso.

También tengo curiosidad acerca de la escritura vs. escritura y omitir la actualización de los tiempos de acceso (en archivos y directorios) para mejorar el rendimiento.

gth
fuente

Respuestas:

64

Primero y ante todo:

!! ADVERTENCIA !!

Estos comandos son EJEMPLOS . ELIMINAR particiones, MODIFICAR y FORMATEAR los sistemas de archivos destruye los datos y / o puede impedir que su máquina arranque. Hacer copias de seguridad. Uso bajo su propio riesgo. Pruebe en una máquina en la que no le importa perder todos los datos. advertencia de administrador


Para configurar rápidamente una unidad de disco como una sola partición ext4 ...

  1. Ver dispositivos detectados de la clase "DISCO"

    lshw -C disk
    
  2. Ver las tablas de partición existentes

    fdisk -l
    
  3. Edite la tabla de particiones para mi dispositivo elegido (en este caso, "sdx")

    fdisk /dev/sdx
    

    Dentro de FDISK, presione:

    • d... a d elete la partición actual

    • n... para crear un n partición ew

    • p... para especificarlo como una partición P RIMARY

    • 1... para configurarlo como la partición primaria 1 ST

    • w... a w rito los cambios.

  4. Mostrar la nueva tabla de particiones:

    fdisk -l
    
  5. Formatee el sistema de archivos de la nueva partición como tipo ext4

    mkfs -t ext4 /dev/sdx1
    
  6. Cree un nuevo directorio donde se montará la nueva unidad:

    mkdir /storage
    mount /dev/sdx1 /storage
    

SINTONIZACIÓN

  1. Elimine los bloques reservados (es decir, establecido en 0%), ya que esta unidad es solo para datos del usuario

    tune2fs -m 0 /dev/sdx1
    
  2. Como el servidor está en UPS, configure la reescritura para que las aplicaciones no esperen las escrituras de disco reales

    tune2fs -o journal_data_writeback /dev/sdx1
    
  3. Montar al iniciar usando /etc/fstaby también establecer una política de reescritura

    vi /etc/fstab
    
  4. Encuentre (o agregue) la línea relevante fstabpara su unidad. Los parámetros en fstab están separados por espacios en blanco, por ejemplo, la unidad descrita anteriormente puede aparecer como:

    /dev/sdx1 /storage ext4 relatime,errors=remount-ro 0 1
    
    • El primer parámetro identifica la partición (ya sea por / dev / o un UUID largo);
    • El segundo parámetro es la ruta en la que se montará la partición;
    • El tercero es el tipo de sistema de archivos;
    • El cuarto parámetro contiene las opciones;
    • Quinto es el dumphorario para las copias de seguridad; y,
    • El sexto parámetro es el número de paso (utilizado para controlar el fsckorden).

Cambie las opciones (4to parámetro) a:

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

Reinicie para verificar que todo salió bien.
¡Recuerda que estos comandos son destructivos! ¡Tenga copias de seguridad y tenga cuidado!

gth
fuente
3
Debe haber un espacio entre el almacenamiento y ext4. Entonces el comando es como / dev / sdx1 / storage ext4 relatime, errors = remount-ro 0 1
Ganesh Krishnan
Gran guía! Sería bueno tener algunas referencias aquí sobre cómo determinar las opciones de fstab apropiadas (solo un enlace a alguna lista sería genial)
Sander
13

Utilizando parted

Debajo de las instrucciones para crear una nueva partición ext4 en un nuevo disco duro con parted(probado en Ubuntu 14.04.4 LTS x64). partedadmite tabla de particiones GUID (GPT) y, posteriormente, se puede utilizar para particiones superiores a 2 TB, a diferencia fdisk.

Use sudo lshw -C disk *-diskpara ver el nombre lógico de su nuevo disco duro:

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

El nombre lógico es /dev/sdb. Podemos comenzar:

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

Con sudo parted /dev/sdb print, podemos ver que se creó el GPT:

username@server:~$ 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

También necesitamos saber el tamaño del disco (usaremos MB como unidad):

sudo parted /dev/sdb print unit MB print free

lo cual indica:

Disk /dev/sdb: 6001175MB

Ahora podemos crear la partición primaria para que ocupe todo el espacio del disco duro. Para establecer la etiqueta de partición:

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

(consulte https://unix.stackexchange.com/a/49274/16704 si desea saber por qué lo usamos --align optimal)

Con sudo parted /dev/sdb print, podemos ver que se creó la etiqueta de partición primaria:

username@server:~$ 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

Luego necesitamos usar mkfs para crear la partición:

sudo mkfs.ext4 /dev/sdb1

La partición ya está creada, necesitamos montarla. Para hacerlo, sudo nano /etc/fstaby agregue la siguiente línea ( /crimeaes la carpeta en la que elegimos montar la nueva partición):

/dev/sdb1       /crimea ext4 defaults   0       0      

Creamos la carpeta y recargamos /etc/fstab:

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

Puede ver la nueva partición montada usando df -h:

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

En sudo nano /etc/fstab, en lugar de usar /dev/sdb1, podría usar su UUID, que puede encontrar con sudo lshw -C volume:

*-volume
       description: EXT4 volume
       vendor: Linux
       physical id: 1
       bus info: scsi@1: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

De lo contrario, simplemente podría hacer sudo blkid /dev/sdb1:

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

La nueva línea /etc/fstabserá:

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

https://unix.stackexchange.com/a/137868/16704 explica por qué es mejor usar UUID (liquidat, cc by-sa 3.0):

La ventaja de usar el UUID es que es independiente del número de dispositivo real que el sistema operativo le da a su disco duro. Imagen que agrega otro disco duro al sistema y, por alguna razón, el sistema operativo decide que su disco anterior es ahora en sdblugar de sba. Su proceso de arranque se arruinaría si fstab apuntara al nombre del dispositivo. Sin embargo, en el caso de los UUID, estaría bien.


Resumen:

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
Franck Dernoncourt
fuente
en lugar de decirle al MB final sudo parted --align optimal /dev/sdb mkpart primary ext4 0% 6001175MBque sería mejor poner ext4 0% 100%para evitar la Advertencia: La partición resultante no está alineada correctamente para un mejor rendimiento.
Pablo Marin-Garcia