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


9

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

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


Вы пробовали альтернативный (текстовый установщик) диск?
Оли

@Oli: Только что попробовал. Альтернативный установщик Debian более сложен. Но в нем перечислены только стандартные флаги файловой системы (noatime, nodev, noexec). Это предотвращает установку специфичных для btrfs параметров, таких как compressили ssd. Не повезло.
Марио

Ответы:


2

Я наткнулся на эту тему, потому что я искал, чтобы установить 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 здесь !?


10

Более простой способ сделать это - изменить 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и цепочки, elifчтобы использовать разные параметры монтирования для разных устройств и файловых систем.

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

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

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

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

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

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

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


Хотелось бы мне утроить это, потому что я уже третий раз забываю, как это сделать правильно, и это все еще то, где я заканчиваю поискать его в поисках. Хотя вам, конечно, нужно использовать sudo в большинстве случаев, что может быть неочевидно для менее опытных пользователей. Так круто!
DanielSmedegaardBuus

4

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


Это, казалось, сработало! (Хотя я что-то напортачил ..) Но для этого требовалась полная команда mount -o remount,compress,ssd /dev/mapper/target /target -t btrfsс исходным устройством.
Марио

Самый превосходный. После некоторого тестирования уловка перемонтирования сработала безупречно. 1.2G вместо 2.6G используется, заметный прирост скорости.
Марио

2

Начиная с 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

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

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

1

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

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

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

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


1

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

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

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

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

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


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может быть установлен , как вы хотите.


0

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

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

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


2
Насколько я знаю, добавление компрессии в fstab не влияет на существующие файлы (которые станут большой частью этого 4 ГБ SSD уже тогда, когда вы добавите его только после установки!). Я думаю, что создание и монтирование предустановленных разделов - лучший вариант при использовании live-CD.
JanC 12.10.10

Да, добавление опции позже не сжимает файлы. В прошлый раз я сделал полную резервную копию файла, затем изменил флаги файловой системы, а затем переписал все. Очень громоздко И просто tarиногда забываются некоторые атрибуты файла, не уверенные, использовал ли я вместо этого pax или rsync.
Марио

Что если вы просто установите Ubuntu-Minimal, а остальные установите позже?
mniess

0

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

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


Кто я такой, чтобы подвергать сомнению старые китайские пословицы? Но поддерживает ли новый 10.10 установщик смонтированный / целевой? Если он настаивает на перемонтировании, все мои драгоценные ручные разделы будут напрасны.
Марио

Проходить. Если бы у меня был ISO по-прежнему, я бы проверил его в VirtualBox, но снова, я думаю, вам, вероятно, повезет больше с альтернативным установщиком (он лучше реагирует на пользовательские помехи)
Оли

Просто еще раз обернулся. Оба установщика очень счастливы. Ручное разбиение все еще является решением для LUKS, но параметры ручного монтирования не сохраняются для btrfs. Мастер альтернативной установки, как правило, менее доволен нестандартными параметрами, но, по крайней мере, вы можете видеть, что происходит. Установщик рабочего стола отключает цель два или три раза.
Марио
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.