¿Cómo puedo almacenar / var en una partición separada?

13

Me gustaría almacenar /varen una partición separada de /. ¿Cuál es la forma correcta de configurar esto?

ændrük
fuente

Respuestas:

17

Primero prepare una nueva partición (por ejemplo, con partedy mkfs).

Digamos que la partición es / dev / sda5

Montar la nueva partición:

mkdir /var2
mount /dev/sda5 /var2

Sincroniza tu var actual:

rsync -a /var/ /var2

Agregue la entrada a / etc / fstab

/dev/sda5    /var    ext4    defaults      2 2

Reiniciar.

Si necesita volver a su antiguo / var, simplemente comente la entrada en fstab.

Aleksandr Levchuk
fuente
1
Agregaría información para recuperar el espacio en el viejo /var: comience desde un livecd, monte la partición en el sistema instalado /y rm -rf /var/*.
enzotib
1
Buen punto. O puede montarlo /en otra ubicación del sistema actual mientras se está ejecutando (pero después de reiniciar). Luego puede acceder a la /var
versión
1
Yo también me preguntaba sobre eso. El primer 1 es algo realmente arcaico y sin efectos, el segundo controla el orden de fsck cuando llega el momento de escanear su ext durante el arranque. Ya no les presto atención. Simplemente ponga 1 1 porque la sintaxis lo requiere.
Aleksandr Levchuk
2
Debe poner 2 2 para permitir que cosas como / get fsck escaneen antes / var cuando reinicie la 30a vez. De lo contrario, si / var falla y le pide que arregle las cosas manualmente en un único shell de usuario, entonces no tendrá ningún sistema de archivos. Cosas divertidas.
Aleksandr Levchuk
2
¿No es la recomendación utilizar UUID en fstab? blkid -o list -s UUID
Obtuve
2

Configurar una nueva partición / var en un servidor virtual

Cuando me hice cargo de un nuevo servidor virtual que había sido aprovisionado por la empresa de alojamiento de mi empleador, no había suficiente espacio libre en el sistema de archivos raíz. Afortunadamente, habían usado Logical Volume Manager (LVM) para subdividir el disco virtual y había suficiente espacio libre disponible para crear nuevos volúmenes. Creé volúmenes lógicos adicionales para vary homeque habían sido directorios regulares en el sistema de archivos raíz. Como el proveedor del servidor virtual no proporcionó una interfaz similar a KVM por la cual podía acceder al servidor en modo de usuario único, utilicé un método muy similar al descrito por Aleksander (esta respuesta incluye detalles adicionales para recuperar espacio en disco en Además de los comandos específicos de LVM).

Cree un nuevo sistema de archivos / var con LVM

Cree un volumen lógico para el nuevo varsistema de archivos, móntelo (usando un directorio temporal) y copie los archivos del sistema de archivos actual /varal nuevo:

# Create a new 60GB logical volume in the `VolGroup00` group called `var`.
sudo lvcreate -L 60GB -n var VolGroup00
# Create an ext4 filesystem on this new `var` volume.
sudo mkfs.ext4 /dev/VolGroup00/var
# Mount this filesystem at a temporary mount-point.
sudo mkdir /var.new
sudo mount /dev/VolGroup00/var /var.new

Dado que los procesos en ejecución tendrán los archivos /varabiertos y en uso, el árbol de directorios no se puede mover simplemente al nuevo sistema de archivos. Recursivamente ( -r) copie archivos de la /varpartición actual al nuevo sistema de archivos mientras conserva los atributos del archivo y los atributos extendidos ( -a, --archiveopción). Un usuario cauteloso podría crear primero una instantánea LVM del volumen actual antes de copiar, pero eso es demasiado detalle fuera del tema para esta pregunta.

sudo cp -ra /var/ /var.new/

Alternativamente, los archivos se pueden copiar rsync, con su -a, --archiveopción de preservar -X, --xattrsmarcas de tiempo, propiedad, modos, etc. y su opción de preservar los atributos extendidos, como las etiquetas de seguridad utilizadas por AppArmor y SELinux:

sudo rsync -raX /var/ /var.new/

Actualizar la tabla del sistema de archivos

Configure el nuevo sistema de archivos que se utilizará como un nuevo punto de montaje para /varagregar la siguiente línea a /etc/fstab. Tenga en cuenta que 0se utiliza como número de pase (último campo) para que el sistema de archivos no se verifique automáticamente ( fsck) después de un cierto número de reinicios.

/dev/mapper/VolGroup00-var    /var    ext4  defaults  0 0

Como no es posible cambiar al modo de usuario único, reinicie la computadora para usar este nuevo volumen como /var.

Eliminar punto de montaje temporal

Después de reiniciar la máquina, se montará el nuevo sistema de archivos /varpara que el punto de montaje temporal se pueda quitar de forma segura:

sudo rmdir /var.new

Recupere espacio en disco del sistema de archivos raíz

Los /vararchivos antiguos seguirán ocupando espacio en la partición raíz, pero no son fácilmente accesibles mientras otro sistema de archivos está montado /var(el nuevo sistema de archivos los "enmascara" usando el /vardirectorio como punto de montaje). Use un punto de montaje temporal para montar el sistema de archivos raíz de modo que el contenido del /vardirectorio original esté disponible por una ruta alternativa.

    sudo mkdir /old-root
    sudo mount /dev/mapper/VolGroup00-root /old-root/
    sudo rm -rf /old-root/var/*
    sudo umount /old-root/
    sudo rmdir /old-root/
Anthony Geoghegan
fuente
Buena explicación de las opciones involucradas. Sin embargo, usted usa lvcreatey mkfs.ext4sin explicar qué se usan o por qué. Tal vez simplemente pueda decir que es para hacer la nueva partición, ya que no son el tema principal de la respuesta.
PhoneixS
Gracias por los comentarios @PhoneixS. He editado la respuesta para aclararla y proporcionar información contextual adicional.
Anthony Geoghegan