OpenSuSe, Btrfs и переезд на ssd
29.12.2020Казалось бы, ну что может быть проще — это ж линукс — скопировал, загрузчик воткнул и готово… ХРЕН! Апгрейд дисковой подсистемы вылился в три дня переезда.
Диспозиция
Системный винт на 500Гб: системный раздел под Btrfs, swap, /home под ext4. Помойка на 1Тб под xfs. В принципе стандартный ничем не примечательный зоопарк, практически типовой конфиг.
По понятным причинам всё это забито хламом вхлам. Понятные причины называются лень и архивы. Тут следует добавить, что бонусом идёт винт с виндой и ещё один винт с резервным архивом, но они обычно отключены. И тут мне дарят ssd на 240Гб… упс:) Кажется что-то нэвлэзает, точнее говоря ничего нэвлэзает, принято героическое решение распотрошить заначку и купить новую файловую помойку на 3Тб, чтобы сразу и с запасом.
Справедливости ради, из трёх дней два были потрачены на копирование больших объёмов архивных данных, с небольшим разгрёбом мусора в процессе.
О современных файловых системах
Их много хороших и разных. Исторически базовыми для линуксов являются ext2/ext3/ext4 — сбалансированная надёжность и производительность. Под большие объёмы и большие файлы обычно используют xfs. Под горы мелких файлов, что характерно для системного раздела, раньше было модно ReiserFS. Сейчас мой дистриб линукса (на домашнем компе я предпочитаю OpenSuSe) по-дефолту использует Btrfs — куча плюсов типа «точек восстановления» сразу на уровне архитектуры. Для ssd лучшей считается специализированная F2FS, но мой дистр что-то её не хочет.
Вообщем всё это прекрасно, кроме одного момента — нужен бубен и умение с ним плясать.
Собственно переезд с hdd на ssd
Потыкавшись и почитав гору статей, я пришёл к следующему велосипеду на квадратных колёсах:
- Скачал установщик suse, отключил все винты, поставил систему на минималках.1
- Подключил винт со старой системой, загрузился с него, примонтировал винт с новой.
- Забэкапил новой системы fstab, дабы не вспоминать как там эти subvolume подключены.
- Добавил в fstab старой системы раздел новой и все его subvolume, смонтировал всё это2.
- При помощи команды cp -arx3 перекопировал нужные директории4
- Также перекопировал все настройки пользователя из /home5.
- Вернул оригинальный fstab, добавил туда подключение других нужных дисков.
- Перезагрузился с новой системы, долго удивлялся что всё работает:)
Данный алгоритм является не совсем правильным, патамушта правильно было бы: загрузиться с флешки, сделать клонирование раздела, потом руками смонтировать и откопировать хомяка, потом руками переписать fstab, потом руками установить загрузкичк, потому руками… короче это было бы дольше.
Философия и бэкапы
Это вот всё прекрасно в случае домашнего компа и неторопливого переезда, а если бы у меня стоял сервак в продакшне и на нём развалился системный рейд? Подумал я на эту тему и решил что на новом компе надо будет на всякий случай настроить бэкап системного раздела, ибо ну его нафиг такие пляски в случае чего…
Бонус: биндим мышу!
Давненько я собирался подвесить на боковые доп.кнопки копирование и вставку и таки подвесил!
zypper install xbindkeys xautomation
xbindkeys --defaults > /home/phantom/.xbindkeysrc
xev | grep buttons
Далее в конфиге всё закамментить и добавить:
"xte 'keydown Control_L' 'key Insert' 'keyup Control_L'"
b:8
"xte 'keydown Shift_L' 'key Insert' 'keyup Shift_L'"
b:9
И в параметрах системы в автозапуск ещё засунуть для полного щастья;)
- Всё что реально нужно это правильно размеченный системный раздел, загрузчик и fstab…
- Они монтируются отдельно, в fstab нужно подправить точку монтирования и только её, когда зайдёте поймёте о чём речь.
- Просто f5 в mc снесёт всякие метаданные и прочие сим и хардлинки!
- Я думаю не надо пояснять что /run и /proc в число нужных не входят?
- Проще скопировать всё, предварительно перекинув тяжёлое на большой hdd.