Краткая инструкция по установке Rosa на ssd и btrfs
Добавлено: 09 дек 2014, 00:00
				
				Первоисточник:
http://blog.kourim.net/installing-debia ... -subvolume
Захотел я поэкспериментировать со стареньким Asus EeePC 1015, ssd диском на 128 гб, btrfs, субразделами (subvolume) и снапшотами. Русскоязычной документации я не нашел, поэтому ниже краткая инструкция:
0. Устанавливаем в EeePc ssd диск, лишаясь гарантии.
Мне не страшно, т. к. я уже разобрал и собрал его много раз.
1. Запускаемся с livecd или флешки и делаем разметку с помощью gparted.
Размечал не штатным установщиком, т. к. начитался ужастиков по выравниванию разделов. Все сводится к тому, что первый раздел должен начинаться с 2048, а второй и следующие c сектора, кратного 8. Так же с помощью gparted удобно оставить для swap ровно столько гигабайт, сколько нужно. Подкачку многие не советуют хранить в файле на btrfs, поэтому я решил пожертвовать 4 гб и выделить отдельный раздел.
Моя разметка:
Корень на brtfs. (Home позже сделаем с помощью subvolume)
/dev/sda1 сектора 2048 — 226052095, 108 гб
Swap
/dev/sda2 сектора 226052096 — 234440703, 4 гб
2. Устанавливаем систему с помощью штатного установщика.
Там всё как обычно и по умолчанию.
3. После установки проверяем, что система работает и снова запускаемся с livecd. Время создавать субразделы (subvolume)
Открываем консоль и переходим с помощью su в root. Создаем в mnt папку, например btrfs:
Монтируем туда наш корневой раздел:
Далее создаем subvolume @ для корня и @home для /home. На самом деле можно назвать как  угодно, но я решил сделать, как в англоязычной статье.  
Для нас это обычные папки. Конечно, это не совсем обычные папки, это субразделы, но операции с файлами такие же. Только удалять subvolume нужно с помощью команды btrfs subvolume delete SUBVOL
Команда для посмотра subvolume:
Далее с помощью Midnight Commander или утилиты mv мы переносим содержимое /mnt/btrfs/home в /mnt/btrfs/@home, а /mnt/btrfs/ в /mnt/@
Внимание! Не переносите @ и @home в @. Но в @ должна быть пустая папка home (/mnt/btrfs/@/home)
Перенос может занять некоторе время, т. к. subvolume не просто папка, а совсем другой раздел и получается, как будто вы переносите данные с одного диска на другой.
Т.к. мы только что «грохнули» корневой раздел, то нам надо явно указать, что теперь нам надо загружатья не с корня, а с subvolume @. Вместо 281 подставьте свой ID субраздела @, скорей всего он будет другим.
Потом надо добавить в /mnt/btrfs/@/etc/fstab строчку для монтирования @home в /home
Также я решил добавить в fstab следующие строки:
Это позволяет хранить логи и прочие временные файлы в tmpfs, которая в свою очередь всё хранит в оперативной памяти. Таким образом нагрузка на ssd снизится. Также не забудьте перед перезагрузкой удалить содержимое этих папок в /mnt/btrfs/@.
4. Перезагружаемся в нашу систему. Если всё сделано правильно, то всё загрузится и заработает. Но это еще не всё. Надо переустановить grub и отказаться от default subvolume. Это не моя идея, так советуют умные люди ради того, чтобы при обновлениях и прочих действиях, когда выполнится команда grub2-update, ничего не поломалось. Grub2 умеет определять субразделы относительно корня, поэтому он найдет boot не в /boot, а в /@/boot. Это может показаться сложным для понимания, но на самом деле так надо для работы со снапшотами и воизбежание путаниц с путями к файлам.
Создаем папку для монтирования:
Монтируем корень файловой системы btrfs(не @, а самый верхний, который сожержит @ и @home). Он всегда имеет ID=5 
И меняем default обратно:
Теперь устанавливаем: 
И самое главное, не забудем в /etc/fstab подправить строчку монтирования /
5. Перезагружаемся и радуемся.
6. Теперь можно делать снапшоты на живой системе!!!
Желательно это делать не насилуя в данный момент файловую систему, например не устанавливая обновления. Из под root пишем:
Готово! Мы моментально, в одну секунду, сделали снимок. Если объяснять на пальцах, то система не будет дублировать данные. Она создаст еще одну таблицу и будет следить за тем чтобы нигде ничего не потерялось. Если мы вдруг удалим файлы из @, то данные на диске останутся, т.к на них еще указывает таблица из @_backup. А если изменим /etc/hosts, то система сохранит два файла для @ и @_backup.
Теперь загрузим систему со снапшота @_backup. Для наглядности можно что-то удалить или установить. Подменим @ на @_backup:
На живой системе переименовываем subvolume @ в @_old:
А snapshot @_backup в @:
Перезагружаем систему и ВУАЛЯ. Мы видим то, что было во время снапшота. Timemashine отдыхает.
Чтоб вернуться обратно делаем все наоборот и перезагружаем систему.
Надо учесть, что снапшоты съедают место на диске и нам иногда придется удалять некоторые снапшоты. Просто удалять их нельзя, для этого есть специальная команда:
О производительности. 
Я не тестировал создание 100000000 файлов с одновременным копированием одного файла в 1000000 гб, но если судить по времени загрузки и отзывчивости интерфейса, то система работает намного быстрее чем на ext4 (и чем на hdd) и наверно чуть медленнее, чем на XFS. Система с LXDE загружается очень шустро!!! Если отключить запрос пароля в DM и 5 секунд загрузчика, то получается, что загрузка BIOS отнимает столько же, сколько и система. C KDE совсем другая ситуация. Очень много времени проходит со времени ввода пароля до загрузки рабочего стола. Пробовал множество настроек, но побороть не получилось. НО!!! Зато восстановление из гибернации происходит в считанные секунды. Я вынужден использовать KDE, т.к очень нужен Okular и быстрое подключение к внешним мониторам и проекторам
По сравнению с обычным диском работа от батареи несколько возросла, особенно, когда занимаешься чтением pdf или просмотром Интернета с большим содержанием текста.
Дополнительно для ssd:
Хорошая идея установить порог использования swap как можно меньше. Вставим строку vm.swappiness=5 в /etc/sysctl.conf (значения от 0 до 100) Это заставит систему использовать swap при крайней необходимости и меньше писать на диск.
Также я на рабочем столе сделал два sh скрипта с командами swapon и swapoff. Суть в том, что один включает раздел swap, другой выключает. Не уверен в особой нужде, это больше эксперименты с sudo.
Многие предлагают настраивать браузеры таким образом, чтобы они не хранили кеш и историю на диске, а только в оперативной памяти. Я без истории жить не могу, а вот отсутствие кеша я особо не заметил, хотя часто пользуюсь 2g/3g. Также я выключил flash и другие надстройки, чем уменьшил трафик и увеличил работу от АКБ, когда надо долго работать текстом на сайтах.
Спасибо за внимание.
			http://blog.kourim.net/installing-debia ... -subvolume
Захотел я поэкспериментировать со стареньким Asus EeePC 1015, ssd диском на 128 гб, btrfs, субразделами (subvolume) и снапшотами. Русскоязычной документации я не нашел, поэтому ниже краткая инструкция:
0. Устанавливаем в EeePc ssd диск, лишаясь гарантии.
Мне не страшно, т. к. я уже разобрал и собрал его много раз.
1. Запускаемся с livecd или флешки и делаем разметку с помощью gparted.
Размечал не штатным установщиком, т. к. начитался ужастиков по выравниванию разделов. Все сводится к тому, что первый раздел должен начинаться с 2048, а второй и следующие c сектора, кратного 8. Так же с помощью gparted удобно оставить для swap ровно столько гигабайт, сколько нужно. Подкачку многие не советуют хранить в файле на btrfs, поэтому я решил пожертвовать 4 гб и выделить отдельный раздел.
Моя разметка:
Корень на brtfs. (Home позже сделаем с помощью subvolume)
/dev/sda1 сектора 2048 — 226052095, 108 гб
Swap
/dev/sda2 сектора 226052096 — 234440703, 4 гб
2. Устанавливаем систему с помощью штатного установщика.
Там всё как обычно и по умолчанию.
3. После установки проверяем, что система работает и снова запускаемся с livecd. Время создавать субразделы (subvolume)
Открываем консоль и переходим с помощью su в root. Создаем в mnt папку, например btrfs:
Код: Выделить всё
mkdir /mnt/btrfs/Код: Выделить всё
mount /dev/sda1 /mnt/btrfs/Код: Выделить всё
btrfs subvol create /mnt/btrfs/@
btrfs subvol create /mnt/btrfs/@home
Команда для посмотра subvolume:
Код: Выделить всё
btrfs subvolume list /mnt/btrfs/
ID 281 gen 1229 top level 5 path @
ID 285 gen 1227 top level 5 path @home
Внимание! Не переносите @ и @home в @. Но в @ должна быть пустая папка home (/mnt/btrfs/@/home)
Перенос может занять некоторе время, т. к. subvolume не просто папка, а совсем другой раздел и получается, как будто вы переносите данные с одного диска на другой.
Т.к. мы только что «грохнули» корневой раздел, то нам надо явно указать, что теперь нам надо загружатья не с корня, а с subvolume @. Вместо 281 подставьте свой ID субраздела @, скорей всего он будет другим.
Код: Выделить всё
btrfs subvolume set-default 281 /mnt/btrfs/Код: Выделить всё
/dev/sda1  /home  btrfs  discard,defaults,relatime,nodiratime,ssd,noatime,subvol=@home  0  0Код: Выделить всё
tmpfs /tmp tmpfs defaults 0 0
tmpfs /var/tmp tmpfs defaults 0 0
tmpfs /var/log tmpfs defaults 0 0
tmpfs /var/spool tmpfs defaults 0 04. Перезагружаемся в нашу систему. Если всё сделано правильно, то всё загрузится и заработает. Но это еще не всё. Надо переустановить grub и отказаться от default subvolume. Это не моя идея, так советуют умные люди ради того, чтобы при обновлениях и прочих действиях, когда выполнится команда grub2-update, ничего не поломалось. Grub2 умеет определять субразделы относительно корня, поэтому он найдет boot не в /boot, а в /@/boot. Это может показаться сложным для понимания, но на самом деле так надо для работы со снапшотами и воизбежание путаниц с путями к файлам.
Создаем папку для монтирования:
Код: Выделить всё
mkdir /mnt/btrtfs/Код: Выделить всё
mount -o subvolid=5 /dev/sda1 /mnt/btrfs/Код: Выделить всё
btrfs subvolume set-default 5 /mnt/btrfs/Код: Выделить всё
update-grub2 #переписывем конфиги
grub2-install /dev/sda #устанавливаем в загрузочный сектор
Код: Выделить всё
UUID=3942ea88-3677-42e5-9b65-38f74137b050 / btrfs discard,defaults,relatime,nodiratime,ssd,subvol=@ 1 1
6. Теперь можно делать снапшоты на живой системе!!!
Желательно это делать не насилуя в данный момент файловую систему, например не устанавливая обновления. Из под root пишем:
Код: Выделить всё
mount /dev/sda1 /mnt/btrfs/
cd /mnt/btrfs/
btrfs subvolume snapshot @ @_backup
Теперь загрузим систему со снапшота @_backup. Для наглядности можно что-то удалить или установить. Подменим @ на @_backup:
На живой системе переименовываем subvolume @ в @_old:
Код: Выделить всё
mv @ @_oldКод: Выделить всё
mv @_backup @
Чтоб вернуться обратно делаем все наоборот и перезагружаем систему.
Надо учесть, что снапшоты съедают место на диске и нам иногда придется удалять некоторые снапшоты. Просто удалять их нельзя, для этого есть специальная команда:
Код: Выделить всё
btrfs subvolume delete @_backup
Я не тестировал создание 100000000 файлов с одновременным копированием одного файла в 1000000 гб, но если судить по времени загрузки и отзывчивости интерфейса, то система работает намного быстрее чем на ext4 (и чем на hdd) и наверно чуть медленнее, чем на XFS. Система с LXDE загружается очень шустро!!! Если отключить запрос пароля в DM и 5 секунд загрузчика, то получается, что загрузка BIOS отнимает столько же, сколько и система. C KDE совсем другая ситуация. Очень много времени проходит со времени ввода пароля до загрузки рабочего стола. Пробовал множество настроек, но побороть не получилось. НО!!! Зато восстановление из гибернации происходит в считанные секунды. Я вынужден использовать KDE, т.к очень нужен Okular и быстрое подключение к внешним мониторам и проекторам
По сравнению с обычным диском работа от батареи несколько возросла, особенно, когда занимаешься чтением pdf или просмотром Интернета с большим содержанием текста.
Дополнительно для ssd:
Хорошая идея установить порог использования swap как можно меньше. Вставим строку vm.swappiness=5 в /etc/sysctl.conf (значения от 0 до 100) Это заставит систему использовать swap при крайней необходимости и меньше писать на диск.
Также я на рабочем столе сделал два sh скрипта с командами swapon и swapoff. Суть в том, что один включает раздел swap, другой выключает. Не уверен в особой нужде, это больше эксперименты с sudo.
Многие предлагают настраивать браузеры таким образом, чтобы они не хранили кеш и историю на диске, а только в оперативной памяти. Я без истории жить не могу, а вот отсутствие кеша я особо не заметил, хотя часто пользуюсь 2g/3g. Также я выключил flash и другие надстройки, чем уменьшил трафик и увеличил работу от АКБ, когда надо долго работать текстом на сайтах.
Спасибо за внимание.
 
  
 
 заканчивает как только я начинаю в GIMP обрабатывать различными фильтрами картинку 100 000 х 10 000 пикселей
 заканчивает как только я начинаю в GIMP обрабатывать различными фильтрами картинку 100 000 х 10 000 пикселей