OpenSuSe, Btrfs и переезд на ssd

29.12.2020 0 Автор Phantom

Казалось бы, ну что может быть проще — это ж линукс — скопировал, загрузчик воткнул и готово… ХРЕН! Апгрейд дисковой подсистемы вылился в три дня переезда.

Диспозиция

Системный винт на 500Гб: системный раздел под Btrfs, swap, /home под ext4. Помойка на 1Тб под xfs. В принципе стандартный ничем не примечательный зоопарк, практически типовой конфиг.

По понятным причинам всё это забито хламом вхлам. Понятные причины называются лень и архивы. Тут следует добавить, что бонусом идёт винт с виндой и ещё один винт с резервным архивом, но они обычно отключены. И тут мне дарят ssd на 240Гб… упс:) Кажется что-то нэвлэзает, точнее говоря ничего нэвлэзает, принято героическое решение распотрошить заначку и купить новую файловую помойку на 3Тб, чтобы сразу и с запасом.

Справедливости ради, из трёх дней два были потрачены на копирование больших объёмов архивных данных, с небольшим разгрёбом мусора в процессе.

О современных файловых системах

Их много хороших и разных. Исторически базовыми для линуксов являются ext2/ext3/ext4 — сбалансированная надёжность и производительность. Под большие объёмы и большие файлы обычно используют xfs. Под горы мелких файлов, что характерно для системного раздела, раньше было модно ReiserFS. Сейчас мой дистриб линукса (на домашнем компе я предпочитаю OpenSuSe) по-дефолту использует Btrfs — куча плюсов типа «точек восстановления» сразу на уровне архитектуры. Для ssd лучшей считается специализированная F2FS, но мой дистр что-то её не хочет.

Вообщем всё это прекрасно, кроме одного момента — нужен бубен и умение с ним плясать.

Собственно переезд с hdd на ssd

Потыкавшись и почитав гору статей, я пришёл к следующему велосипеду на квадратных колёсах:

  1. Скачал установщик suse, отключил все винты, поставил систему на минималках.1
  2. Подключил винт со старой системой, загрузился с него, примонтировал винт с новой.
  3. Забэкапил новой системы fstab, дабы не вспоминать как там эти subvolume подключены.
  4. Добавил в fstab старой системы раздел новой и все его subvolume, смонтировал всё это2.
  5. При помощи команды cp -arx3 перекопировал нужные директории4
  6. Также перекопировал все настройки пользователя из /home5.
  7. Вернул оригинальный fstab, добавил туда подключение других нужных дисков.
  8. Перезагрузился с новой системы, долго удивлялся что всё работает:)

Данный алгоритм является не совсем правильным, патамушта правильно было бы: загрузиться с флешки, сделать клонирование раздела, потом руками смонтировать и откопировать хомяка, потом руками переписать 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

И в параметрах системы в автозапуск ещё засунуть для полного щастья;)

  1. Всё что реально нужно это правильно размеченный системный раздел, загрузчик и fstab…
  2. Они монтируются отдельно, в fstab нужно подправить точку монтирования и только её, когда зайдёте поймёте о чём речь.
  3. Просто f5 в mc снесёт всякие метаданные и прочие сим и хардлинки!
  4. Я думаю не надо пояснять что /run и /proc в число нужных не входят?
  5. Проще скопировать всё, предварительно перекинув тяжёлое на большой hdd.
Поделиться в: