Инсталлятор хитрости для использования btrfs root со сжатием

Я хочу установить Maverick на корневой раздел BTRFS. Не для удовольствия или тестирования, а потому что мне нужно сжатие из-за небольшого флэш-диска (4 ГБ).

Теперь установщик 10.10, наконец, поддерживает btrfs, но нет возможности включить compress флаг в нем. Можно ли как-нибудь обмануть установщик? Для старых версий и получения LUKS вы можете предварительно смонтировать разделы. Или есть простой monkeypatch для включения предварительной установки btrfs+compress?

10 ответов

Решение

Я наткнулся на эту тему, потому что я искал, чтобы установить Linux Mint Debian Edition на флэш-накопитель и установить его на сжатые btrfs с самого начала. Хотя эти решения не имели прямого отношения к достижению моих результатов, я использовал часть этой информации для достижения своей цели.

Проблема заключалась в том, что точка установки, форматирующая и монтирующая раздел и запускающая копирование файлов, находилась рядом друг с другом, так как я не мог выполнить опцию "перемонтирования", упомянутую другими выше.

Версия сценария установщика для LMDE была написана на python (usr/lib/live-installer/installer.py). Я не уверен, что то же самое с Ubuntu, но если это так, это будет непосредственно применимо. Это позволило мне отредактировать скрипт и добавить эту строку прямо под строкой, которая первоначально смонтировала раздел для "/".

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

"/dev/sda3" будет зависеть от вашего устройства.

Я понимаю, что это форум по Ubuntu, но, как я уже сказал, он придумал поиск, и это решение было бы непосредственно уместным, если установщик основан на python. В любом случае, мы все Debian здесь!?

2

Более простой способ сделать это - изменить mount команда живой среды.

  1. Загрузитесь как обычно на сеанс в реальном времени.
  2. Переместить mount исполняемый файл в другое место:

    sudo mv /bin/mount /bin/mount.bin
    
  3. Отредактируйте новый файл, используя sudoedit /bin/mount и сохраните в нем следующий скрипт (измените параметры так, как вам нравится; здесь мы добавили compress):

    #!/bin/sh
    if echo "[email protected]" | grep -q -- "-t btrfs"; then
        /bin/mount.bin "[email protected]" -o compress
    else
        /bin/mount.bin "[email protected]"
    fi
    

    Вы также можете сопоставить блочные устройства, такие как /dev/sda1 вместо -t btrfs и цепь elifs использовать разные опции монтирования для разных устройств и файловых систем.

  4. Скопируйте исходные разрешения в новый скрипт:

    sudo chmod --reference=/bin/mount.bin /bin/mount
    
  5. Установите как обычно, и ваш раздел btrfs будет смонтирован с указанными параметрами (здесь, compress).

  6. После завершения установки, перед выходом из live-среды, измените /etc/fstab новой установленной системы, чтобы соответствовать указанным параметрам, поэтому она будет использовать те же параметры при новых загрузках.

Я использовал: defaults,noatime,compress-force=lzo,space_cache как варианты монтирования.

Это работает с ежедневным (30/6/12).

Я использовал раздел btrfs как / и раздел подкачки.

Кредиты идут к этому сообщениюэтой теме), которое, в свою очередь, ссылается на это сообщение в блоге.

10

Сразу после того, как установщик установит ваш раздел, вы можете попробовать переключиться на оболочку и сделать mount -o remount,compress /target, это может сработать.

4

Начиная с 13.04 (Raring Ringtail), вы сможете устанавливать на томе btrfs без сжатия, а затем сжимать каждый файл на всем томе после загрузки до новой установки.

Согласно документации Oracle, вы можете сжать существующие файлы в существующей файловой системе, дефрагментировав ее с помощью опции -clzo.

sudo btrfs filesystem defragment -clzo /

Передав это, один слеш указывает btrfs дефрагментировать все файлы и каталоги на корневом томе.

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

Когда вы закончите, добавьте compress=lzo (или compress=zlib, если хотите, но lzo рекомендуется для скорости) в строку вашего тома в / etc / fstab и перезагрузите компьютер, чтобы все остальные файлы, записанные на диск, были сжаты.

2

Вы можете получить любую или все интересные новые функции Btrfs, выполнив команду mkfs.btrfs вручную. Альтернативный установщик может в любой момент вернуться к предыдущему шагу по вашему выбору. Вы можете использовать это для того, чтобы после того, как установщик создал btrfs, создал свои собственные btrfs и затем запустил установщик на предыдущем шаге, чтобы ваш fs привык.

  1. Запускайте установщик до окончания фазы раздела.
  2. пусть установит базовую систему.

  3. alt-F2 зайдите в терминал и запустите mkfs.btrfs - /dev/sdXY

  4. вернуться к установщику alt-F1
  5. нажмите кнопку "Назад", затем снова выберите раздел. по умолчанию будет не переформатировать, так что вы можете просто нажать продолжить. это переустановит базовую систему. Скажите "да" предупреждению о не переформатировании.

  6. наслаждаться.

1

Более свежие дистрибутивы используют busybox для большинства команд, в том числе mount, В этих выпусках /bin/mount символическая ссылка на /bin/busybox и символическая ссылка должна быть названа "mount", а не "mount.bin", чтобы работать правильно. Таким образом, приведенный выше ответ Mskje может быть изменен на следующее:

  1. Загрузитесь как обычно для живого сеанса.
  2. sudo rm /bin/mount
  3. sudo mkdir /bin/orig
  4. sudo ln -s /bin/busybox /bin/orig/mount
  5. sudo nano /bin/mount - это создаст новый скрипт.
  6. Скопируйте это в скрипт и сохраните (измените параметры, как вам угодно, здесь сожмите):

    #!/bin/sh  
    if echo [email protected] | grep "btrfs" >/dev/null; then  
        /bin/orig/mount [email protected] -o compress  
    else  
        /bin/orig/mount [email protected]  
    fi
    
  7. sudo chmod 755 /bin/mount сделать его исполняемым.

  8. Установите как обычно, и ваш раздел btrfs будет смонтирован с указанными параметрами (здесь сжимается).
  9. После завершения установки, перед выходом из live-среды, измените fstab новой установленной системы, чтобы соответствовать указанным параметрам, поэтому она будет использовать те же параметры при новых загрузках.
1

Выбор вручную: /dev/sda1 как btrfs для / some ext? / Загрузите некоторый своп

В терминале: sudo bash

Нажмите установить

Нажмите ввод в строке терминала: (sudo done) mount -t btrfs -o перемонтирование, сжатие /dev/sda1 /target

1

Я получил его, заменив раздел ext4 на флешке сжатым разделом btrfs. Это можно сделать с помощью другого компьютера.

  1. Копирование всего через

    sudo cp -ar /ext4Partition/* / резервное копирование /
  2. Замените раздел с помощью gparted на btrfs

  3. Смонтируйте новый раздел, используя sudo mount -o compress / dev / yourdevice / btrfsPartition
  4. Скопируйте все обратно

    sudo cp -ar / backupspace / * / btrfsPartition /
  5. Обновите / btrfsPartition / etc / fstab для новых uuids устройства и нового типа раздела. Опция remount удалить, так как btrfs не имеет этого.
  6. переустановите загрузчик (например, через BootRepair)

Примечание: каталоги /btrfsParition, /ext4Partition а также /backupspace может быть установлен, как вы хотите.

1

Вы можете просто добавить сжатие позже. открыто /etc/fstab и отредактируйте строку для вашей корневой файловой системы. добавлять compress к опциям монтирования вот так:

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

Теперь либо перемонтируйте, либо перезагрузите компьютер и не забывайте, что /boot пока не может жить на btrfs, поскольку GRUB2 его не поддерживает.

0

Вы всегда могли следовать древней китайской пословице:

Если вам не нравится то, что делает установщик-разделитель, разбейте его на части и скажите установщику установить на эти разделы.

0
Другие вопросы по тегам