Випробувальний інсталятор використовувати btrfs root зі стисненням


9

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

Тепер інсталятор 10.10 нарешті підтримує btrfs, але немає можливості включити compressпрапор у ньому. Чи можу я якось обдурити інсталятора? Для старих версій та отримання LUKS ви можете попередньо змонтувати розділи. Або можливий простий маніпулятор, щоб увімкнути btrfs + компрес перед встановленням?


Ви спробували альтернативний (текстовий режим встановлення) диск?
Олі

@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 як /і розділ swap.

Кредити переходять до цієї публікаціїцій темі ), яка, у свою чергу, цитує цю публікацію в блозі .


Я б хотів, щоб я міг потроїти це, оскільки це вже втретє, коли я забуваю, як це зробити правильно, і це все-таки, коли я інтенсивно закінчую Google. Хоча для більшості пунктів, звичайно, потрібно використовувати судо, що може бути очевидним для менш досвідчених користувачів. Так кльово!
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

Як тільки ви закінчите, додайте компрес = lzo (або компрес = 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? / завантажуємо деякий своп

У терміналі: судо баш

Натисніть встановити

Натисніть клавішу Enter на кінцевій лінії: (зроблено sudo) -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 -opress / dev / yourdevice / btrfsPartition
  4. Скопіюйте все назад

    sudo cp -ar / backuppspace / * / btrfsPartition /
  5. Оновіть / btrfsPartition / etc / fstab до нових удуїдів пристрою та до нового типу розділу. Видалити опцію повторної переробки, оскільки у 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 вже тоді, коли ви додасте його лише після встановлення!). Я думаю, що створення та монтаж попередніх інсталяцій розділів є найкращим варіантом при використанні живого CD.
січня

Так, додавання опції пізніше не стискає файли. Минулого разу я робив повне резервне копіювання файлів, потім змінював прапори файлової системи, а потім все переробляв. Дуже громіздкий. І це просто те, що tarіноді забуває кілька атрибутів файлу, не впевнений, що я використовував Pax або rsync замість цього.
Маріо

Що робити, якщо просто встановити ubuntu-minimal, а решту встановити пізніше?
месс

0

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

Якщо вам не подобається, що робить учасник інсталятора, розділіть його самостійно та скажіть інсталятору встановити на ці розділи.


Хто я, щоб допитати старі китайські прислів’я? Але чи відповідає новий інсталятор 10.10 встановлену ціль? Якщо воно наполягає на перерахунку, всі мої дорогоцінні ручні розділення були б марними.
mario

Перехід. Якби у мене все ще був ISO, я би перевірив його у VirtualBox, але знову ж таки, я думаю, вам, мабуть, пощастить із альтернативним інсталятором (він, як правило, краще реагує на втручання користувача)
Oli

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