Утилита Trick для использования корня btrfs с сжатием

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

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

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

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

Версия сценария установки 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 здесь, так или иначе!

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

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

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

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

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

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

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

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

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

Это работает с деньгами (30/6/12).

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

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

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

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

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

 sudo btrfs filesystem defragment -clzo / 

Передавая его, один slash сообщает btrfs об дефрагментации всех файлов и каталогов на вашем корневом томе.

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

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

Выбор вручную: / dev / sda1 в качестве btrfs для / some ext? / boot swap

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

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

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

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

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

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

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

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

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

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

      sudo cp -ar / ext4Partition / * / backupspace / 
  2. Замените partion, используя gparted с btrfs one

  3. Установите новый partion с помощью монтирования sudo mount -o compress / dev / yourdevice / btrfsPartition
  4. Скопировать все

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

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

В более поздних дистрибутивах для большинства команд используется busybox , в том числе mount . В этих версиях /bin/mount является символической /bin/busybox на /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 $@ | grep "btrfs" >/dev/null; then /bin/orig/mount $@ -o compress else /bin/orig/mount $@ fi 
  7. sudo chmod 755 /bin/mount чтобы сделать его исполняемым.

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

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

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

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

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

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