Instalador de trucos para usar btrfs root con compresión

9

Quiero instalar Maverick en una partición raíz BTRFS. No por diversión o pruebas, sino porque necesito compresión debido a un pequeño disco flash (4GB).

Ahora el instalador 10.10 finalmente admite btrfs, pero no hay forma de habilitar el compressindicador en él. ¿Puedo engañar al instalador de alguna manera? Para versiones anteriores y obtener LUKS, puede premontar particiones. ¿O es posible un monkeypatch fácil para habilitar la preinstalación de btrfs + compress?

mario
fuente
¿Has probado el disco alternativo (instalador en modo texto)?
Oli
@Oli: Solo lo intenté ahora. El instalador alternativo de Debian es más elaborado. Pero solo enumera las banderas estándar del sistema de archivos (noatime, nodev, noexec). Impide establecer opciones específicas de btrfs como compresso ssd. Sin suerte.
mario

Respuestas:

2

Me encontré con este hilo porque estaba buscando instalar Linux Mint Debian Edition en una unidad flash e instalarlo en btrfs comprimidos desde el primer momento. Aunque estas soluciones no eran directamente aplicables para alcanzar mis resultados, utilicé parte de esta información para alcanzar mi objetivo.

El problema era que el punto del instalador formateando y montando la partición y comenzando a copiar archivos estaba uno al lado del otro, por lo que no pude realizar la opción de "montaje" mencionada por otros arriba.

La versión LMDE de la secuencia de comandos del instalador estaba en python (usr / lib / live-installer / installer.py). No estoy seguro de si es lo mismo con Ubuntu, pero si lo es, esto será directamente aplicable. Esto me permitió editar el script y agregar esta línea justo debajo de la línea que originalmente montó la partición para "/"

os.system("mount -o remount,compress /dev/sda3 /target -t btrfs")

de cortes el "/ dev / sda3" variará dependiendo de su dispositivo.

Entiendo que este es un foro de Ubuntu, pero como dije, surgió la búsqueda y esta solución sería directamente relevante si el instalador está basado en Python. Todos somos Debian aquí de todos modos, ¿verdad?

CenterOrbit
fuente
10

Una forma más fácil de hacer esto es alterar el mountcomando del entorno en vivo.

  1. Arranca como siempre en la sesión en vivo.
  2. Mueva el mountejecutable a otra ubicación:

    sudo mv /bin/mount /bin/mount.bin
    
  3. Edite un nuevo archivo utilizando sudoedit /bin/mounty guarde el siguiente script en él (modifique las opciones como desee; aquí hemos agregado compress):

    #!/bin/sh
    if echo "$@" | grep -q -- "-t btrfs"; then
        /bin/mount.bin "$@" -o compress
    else
        /bin/mount.bin "$@"
    fi
    

    También puede hacer coincidir dispositivos de bloque como en /dev/sda1lugar de -t btrfscadenas elifpara usar diferentes opciones de montaje para diferentes dispositivos y sistemas de archivos.

  4. Copie los permisos originales al nuevo script:

    sudo chmod --reference=/bin/mount.bin /bin/mount
    
  5. Instale como de costumbre y su partición btrfs se montará con las opciones especificadas (aquí, compress).

  6. Una vez finalizada la instalación, antes de salir del entorno en vivo, modifique el /etc/fstabdel sistema recién instalado para que coincida con las opciones especificadas, por lo que utilizará las mismas opciones en las nuevas botas.

Solía: defaults,noatime,compress-force=lzo,space_cachecomo opciones de montaje.

Esto funciona con quantal diariamente (30/6/12).

Usé la partición btrfs como /y una partición de intercambio.

Los créditos van a esta publicación (en este hilo ), que a su vez cita esta publicación de blog .

Msktje
fuente
Desearía poder triplicar este voto, porque esta es la tercera vez que olvido cómo hacerlo correctamente, y aquí es donde termino buscando en Google intensivamente. Aunque necesita usar sudo en la mayoría de los puntos, por supuesto, lo que podría no ser obvio para los usuarios menos experimentados. ¡Muy guay!
DanielSmedegaardBuus
4

Justo después de que el instalador monte su partición, puede intentar cambiar a un shell y hacer un mount -o remount,compress /target, esto podría funcionar.

Michel
fuente
¡Eso pareció funcionar! (Aunque he estropeado algo más ...) Pero requería el comando completo mount -o remount,compress,ssd /dev/mapper/target /target -t btrfscon el dispositivo fuente.
mario
El mas excelente. Después de algunas pruebas, el truco de montaje funcionó a la perfección. 1.2G en lugar de 2.6G usado, ganancia de velocidad notable.
mario
2

A partir de 13.04 (Raring Ringtail), debería poder instalar en un volumen btrfs sin compresión y luego comprimir cada archivo en todo el volumen una vez que haya iniciado la nueva instalación.

De acuerdo con la documentación de Oracle, puede comprimir archivos existentes en un sistema de archivos existente al desfragmentarlo con la opción -clzo.

sudo btrfs filesystem defragment -clzo /

Al pasarlo, la barra diagonal única le dice a btrfs que desfragmente todos los archivos y directorios en su volumen raíz.

Ver: http://docs.oracle.com/cd/E37670_01/E37355/html/ol_use_case1_btrfs.html

Una vez que haya terminado, agregue compress = lzo (o compress = zlib si lo prefiere, pero lzo se recomienda para la velocidad) a la línea de su volumen en / etc / fstab y reinicie para que cualquier otro archivo escrito en el disco se comprima.

Geoff
fuente
2

Las distribuciones más recientes se utilizan busyboxpara la mayoría de los comandos, incluidos mount. En estas versiones, /bin/mountes un enlace simbólico /bin/busyboxy el enlace simbólico debe llamarse "mount" y no "mount.bin" para que funcione correctamente. Como tal, la respuesta anterior de Mskje se puede cambiar a la siguiente:

  1. Arrancar como normal en la sesión en vivo.
  2. sudo rm /bin/mount
  3. sudo mkdir /bin/orig
  4. sudo ln -s /bin/busybox /bin/orig/mount
  5. sudo nano /bin/mount - Esto creará un nuevo script.
  6. Copie esto en el script y guárdelo (modifique las opciones como desee, aquí comprima):

    #!/bin/sh  
    if echo $@ | grep "btrfs" >/dev/null; then  
        /bin/orig/mount $@ -o compress  
    else  
        /bin/orig/mount $@  
    fi
    
  7. sudo chmod 755 /bin/mount para hacerlo ejecutable.

  8. Instale normalmente y su partición btrfs se montará con las opciones especificadas (aquí comprimir).
  9. Una vez finalizada la instalación, antes de salir del entorno en vivo, modifique el fstabdel sistema recién instalado para que coincida con las opciones especificadas, por lo que utilizará las mismas opciones en las nuevas botas.
danBhentschel
fuente
1

Seleccionando manualmente: / dev / sda1 como btrfs para / some ext? / arranque un poco de intercambio

En una terminal: sudo bash

Presione instalar

Presione enter en la línea de terminal: (sudo hecho) mount -t btrfs -o remontar, comprimir / dev / sda1 / target

usuario3911
fuente
1

Puede obtener cualquiera o todas las características nuevas y geniales de Btrfs ejecutando el comando mkfs.btrfs manualmente . El instalador alternativo tiene una opción en cualquier momento para volver al paso anterior de su elección. puede usar esto para, después de que el instalador cree los btrfs, cree sus propios btrfs y luego inicie el instalador en el paso anterior para que se use su fs.

  1. ejecute el instalador hasta después de la fase de partición.
  2. deje que instale el sistema base.

  3. alt-F2 ve a la terminal y ejecuta mkfs.btrfs - / dev / sdXY

  4. volver al instalador alt-F1
  5. presione el botón "volver" y luego elija la opción de partición nuevamente. los valores predeterminados serán no volver a formatear para que pueda presionar continuar. reinstalará el sistema base. diga sí a la advertencia sobre no volver a formatear.

  6. disfrutar.

Arthur Ulfeldt
fuente
1

Lo hice funcionar reemplazando la partición ext4 en el dispositivo con una partición btrfs comprimida. Esto se puede hacer usando otra computadora.

  1. Copiar todo a través de

    sudo cp -ar / ext4Partition / * / backupspace /
  2. Reemplace la partición usando gparted con btrfs one

  3. Monte una nueva partición usando sudo mount mount -o compress / dev / yourdevice / btrfsPartition
  4. Copia de nuevo todo

    sudo cp -ar / backupspace / * / btrfsPartition /
  5. Actualice / btrfsPartition / etc / fstab a los nuevos uuids del dispositivo y al nuevo tipo de partición. Quite la opción de montaje, ya que btrfs no tiene esto.
  6. reinstalar el cargador de arranque (por ejemplo, a través de BootRepair )

Nota: los directorios /btrfsParition, /ext4Partitiony /backupspacese pueden configurar como desee.

cabeza
fuente
0

Puede agregar compresión más tarde. Abra /etc/fstaby edite la línea para su sistema de archivos raíz. Agregue compressa las opciones de montaje de esta manera:

UUID=0c8e6d48-e6b3-425a-ab33-24205a9cb586 / btrfs defaults,compress 0 1

Ahora, vuelva a montar o reinicie y no olvide que / boot no puede vivir en btrfs, ya que GRUB2 no lo admite.

mniess
fuente
2
Hasta donde yo sé, agregar comprimir en fstab no tiene efecto en los archivos existentes (¡lo cual será una gran parte de ese SSD de 4 GB cuando solo lo agregue después de la instalación!). Creo que crear y montar las particiones preinstaladas es la mejor opción cuando se utiliza el Live-CD.
JanC
Sí, agregar la opción más tarde no comprime los archivos. La última vez que hice una copia de seguridad de archivos completa, luego cambié los indicadores del sistema de archivos y luego sobrescribí todo. Muy engorroso Y es que a tarveces olvida algunos atributos de archivo, no estoy seguro si usé pax o rsync en su lugar.
Mario
¿Qué sucede si solo instala ubuntu-minimal e instala el resto más tarde?
mniess
0

Siempre puedes seguir el antiguo proverbio chino:

Si no le gusta lo que hace el particionador instalador, particione usted mismo y dígale al instalador que instale en esas particiones.

Oli
fuente
¿Quién soy yo para cuestionar viejos proverbios chinos? Pero, ¿el nuevo instalador 10.10 respeta un objetivo / montado? Si insiste en volver a montar, toda mi preciosa partición manual sería en vano.
mario
Pasar. Si todavía tuviera el ISO, lo probaría en VirtualBox, pero nuevamente, creo que probablemente tenga mejor suerte con el instalador alternativo (tiende a reaccionar mejor a la interferencia del usuario)
Oli
Solo le di otro giro. Ambos instaladores son bastante felices. La partición manual sigue siendo una solución para LUKS, pero las opciones de montaje manual no persisten para btrfs. El asistente de instalación alternativo generalmente parece menos feliz con las opciones no estándar, pero al menos puede ver lo que está sucediendo. El instalador de escritorio desmonta el objetivo dos o tres veces.
mario