Instalación y uso de Btrfs
comenzando
Instale el paquete de utilidades personalizadas.
pacman -S btrfs-progs arch-install-scripts
lsblk
- lista todas las secciones para decidir qué montar.
# disco de partición, -z dice poner a cero la tabla de particiones
cfdisk -z /dev/sda
Dado que Btrfs no puede contener un archivo de intercambio, debe ocuparse de la partición de intercambio con anticipación si la necesita.
mkswap /dev/sda2
Creamos un sistema de archivos en la partición. Para particiones de 1GB y más pequeñas, para usar el espacio de manera más eficiente, se recomienda pasar el interruptor -M a los parámetros mkfs.btrfs
.
Opcionalmente, puede configurar la etiqueta con la tecla -L.
mkfs.btrfs /dev/sda<número>
mkfs.btrfs -L "root" /dev/sda<número>
Ahora montamos.
mount /dev/sdb1 /mnt
Luego crearemos dos subvolúmenes para los directorios de inicio de usuario y raíz.
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
Visualización de subvolúmenes.
btrfs subvolume list /mnt
Desmontemos la raíz FS.
umount /mnt
Para montar un subvoltaje como una partición de disco normal, el comando mount necesita especificar la opción subvol.
Monte la raíz. Compresión zstd o lzo.
mount -o subvol=@,compress=zstd /dev/sdb1 /mnt
Cree un directorio y monte nuestro futuro directorio de usuarios en él.
mkdir /mnt/home
mount -o subvol=@home,compress=zstd /dev/sdb1 /mnt/home
Luego actuamos en la wiki, es decir elija espejos e instale el sistema base. Al generar initramfs, mkinitcpio se quejará de la ausencia de fsck.btrfs; esto es normal. Eliminemos este gancho fsck de la configuración, porque no es necesario para Btrfs.
nano /etc/mkinitcpio.conf
Aquí está la línea dada en el archivo.
HOOKS="base udev autodetect modconf block filesystems keyboard"
Y vuelva a crear initramfs.
mkinitcpio -p linux
Y una cosa más sobre el gestor de arranque, no sé cómo otros, pero grub definitivamente sabe cómo arrancar desde Btrfs, así que es mejor elegirlo. Además, no olvide instalar el paquete btrfs-progs y hacerse cargo de las copias de seguridad.
Usando btrfs
Monte la raíz FS.
mount /dev/sdb1 /mnt
Crea instantáneas.
btrfs subvolume snapshot /mnt/@ /mnt/@_bac
btrfs subvolume snapshot /mnt/@home /mnt/@home_bac
btrfs subvolume list /mnt
Los directorios son absolutamente idénticos y, hasta que empezamos a cambiar los archivos, las instantáneas no ocupan espacio.
Eliminando.
btrfs subvolume delete /mnt/@
Rollback: arranque desde el Live CD, monte la raíz FS y cambie el nombre de los subvolúmenes. Los subvolúmenes también se pueden renombrar directamente en el sistema de producción si la descarga se realiza correctamente.
mount /dev/sdb1 /mnt
mv /mnt/@ /mnt/@_bad
mv /mnt/@_bac /mnt/@
mv /mnt/@home /mnt/@home_bad
mv /mnt/@home_bac /mnt/@home
O arrancamos como de costumbre, y en el menú de grub especificamos el subvolumen con la copia de seguridad rootflags=subvol=backup
.
Copia en escritura (CoW). Si usa el comando cp
con llave --reflink=auto
, entonces la copia del archivo no ocupará espacio en disco. Y más tarde, por ejemplo, cuando se cambia el archivo copiado, solo se escribirán en el disco los bloques modificados.
"Online" - Comprobación de FS. En el que todos los datos / metadatos se leen con la verificación de sumas de verificación, si hay errores, se detectan y corrigen si es posible.
btrfs scrub start -B /
Si omite el modificador -B
, el proceso pasará a segundo plano y el comando podrá averiguar sobre el progreso de la ejecución.
btrfs scrub status /
Salida de muestra.
scrub status for 56edc366-a153-4eee-b2a6-471b7066b93d
scrub started at Sat Dec 14 06:37:19 2013 and finished after 3242 seconds
total bytes scrubbed: 222.45GB with 0 errors
Se recomienda verificarlo regularmente (semanalmente). "Fuera de línea": comprobación de FS (en la partición desmontada). Si no hay errores, la utilidad devolverá 0.
btrfs check /dev/sda
Instalar desde un sistema existente o desde un usb en vivo
pacman -S btrfs-progs arch-install-scripts
lsblk
- resalte todas las secciones para decidir qué montar.
Dado que Btrfs no puede contener un archivo de intercambio, debe ocuparse de la partición de intercambio con anticipación si la necesita.
mkswap /dev/sda2
¡Atención! esto formateará todo su disco, ¡con pérdida de datos! En este ejemplo, la instalación va a todo el disco, no a las particiones, si necesita un intercambio, considere este punto.
mkfs.btrfs -f -L WD /dev/sdb
Montamos.
mount /dev/sdb /mnt
Creemos dos subvolúmenes bajo la raíz @
y el directorio de inicio del usuario @ home
.
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
Y desmonte la raíz FS.
umount /mnt
Monte la raíz.
mount -o subvol=@,compress=zstd /dev/sdb /mnt
Cree un directorio y monte nuestro futuro directorio de usuarios en él.
mkdir /mnt/home
mount -o subvol=@home,compress=zstd /dev/sdb /mnt/home
Instale paquetes básicos.
pacstrap /mnt base base-devel linux linux-headers xorg-xinit xorg-server grub zsh mc nano netctl wpa_supplicant dialog dhcpcd btrfs-progs
Creamos fstab.
genfstab -pU /mnt >> /mnt/etc/fstab
Comprobación.
cat /mnt/etc/fstab
Cree un directorio y monte el arranque si es necesario.
mount -t proc none /mnt/proc
mount -t sysfs none /mnt/sys
mount -o bind /dev /mnt/dev
cp -L /etc/resolv.conf /mnt/etc
swapon /dev/sda2
A partir del kernel 5.0, puede crear un archivo de intercambio, el archivo de intercambio debe estar ubicado completamente en un dispositivo, creado con COW deshabilitado y compresión.
touch /swap # crear un archivo / intercambio vacío
chmod go-r /swap # el intercambio debe ser 600
chattr +C /swap # apagar COW, la compresión también se apaga
fallocate /swap -l4g # Archivo 4Gb
mkswap /swap
swapon /swap
Vamos a revisar.
btrfs subvolume list /mnt
Entramos en el sistema.
chroot /mnt /bin/zsh
Asignamos un anfitrión.
echo ctlos > /etc/hostname
Selección de zona horaria.
ln -sf /usr/share/zoneinfo/UTC /etc/localtime
hwclock --systohc --utc
timedatectl set-ntp true
# o
timedatectl set-timezone America/Mexico
Elija una configuración regional para el sistema.
sed -i "s/#\(es_MX\.UTF-8\)/\1/" /etc/locale.gen
locale-gen # Generar locales
Registrarse en/etc/locale.conf
.
echo "LANG=es_MX.UTF-8" > /etc/locale.conf
echo "LC_COLLATE=C" >> /etc/locale.conf
Fuente en Español en la consola.
echo "KEYMAP=es" > /etc/vconsole.conf
Cree un disco de marco mkinitcpio.
nano /etc/mkinitcpio.conf
En / etc / mkinitcpio.conf
, en la sección HOOKS, elmapa de teclas
del teclado del gancho debe estar registrado, eliminefsck
.
En la sección MÓDULOS , debe registrar el controlador de su tarjeta de video: i915 para Intel, radeon para AMD, nouveau para Nvidia.
HOOKS=(base udev autodetect modconf block filesystems keyboard keymap)
mkinitcpio -p linux
Establecer contraseña de root.
passwd
Crear usuario.
useradd -m -g users -G wheel,audio,video,storage -s /bin/zsh killer
Y pídale una contraseña.
passwd killer
Descomente en / etc / pacman.conf
.
[multilib]
Include = /etc/pacman.d/mirrorlist
Luego ejecuta.
pacman-key --init
pacman-key --populate
pacman -Syy
Instalación del cargador de arranque.
grub-install /dev/sdb
grub-mkconfig -o /boot/grub/grub.cfg
Configuración de sudo.
EDITOR=nano visudo
Otorgue al usuario privilegios de superusuario o grupo cuando escriba sudo.
malody ALL=(ALL) ALL
O un grupo.
%wheel ALL=(ALL) ALL
Para no solicitar una contraseña al usuario.
Defaults:malody !authenticate