LINUX.ORG.RU

Перенос системы на другую схему разметки


0

1

Простите за сериал, счастливый конец уже близок.

Имеется raw-образ накопителя с установленной Debian GNU/Linux. Этот образ уже какое-то время используется с QEMU и теперь у меня появилось желание перенести в той или иной степени его содержимое на ноутбук с SSD.

Сначала план переноса состоял в том, чтобы установить ОС заново, а затем выборочно скопировать нужные мне конфигурационные и пользовательские файлы в новую систему. Но раз уж новая схема разметки с самого начала требует выполнения многих шагов вручную, в обход установщика, то может быть разумнее в такой ситуации было бы отказаться от инсталляции новой ОС вовсе?

Можно ли вместо этого сделать следующее:

  • установить в ВМ необходимые пакеты (cryptsetup и пр.), скопировать образ виртуального накопителя на USB-носитель
  • загрузить ноутбук с установочного CD в режиме восстановления
  • создать на SSD выровненную иерархию разделов с помощью parted, cryptsetup и [pv|vg|lv]create
  • подключить USB-носитель с файлом образа виртуального накопителя и смонтировать корневой раздел образа с помощью mount -o loop,offset=... во временную точку монтирования
  • последовательно скопировать все файлы из корневого раздела виртуального накопителя на разделы SSD с помощью cp (ключа -a будет достаточно?)
  • создать новый initrd, отредактировать crypttab, fstab, ...
  • что-то ещё?
★★

Последнее исправление: dumka (всего исправлений: 4)

поправить initrd, crypttab, fstab, ...

Создать /etc/crypttab
Исправить /etc/fstab
Выполнить chroot /target update-initramfs -u -k all

что-то ещё?

Поставить загрузчик (mount -o bind /dev /target/dev; ...; chroot /target grub-install ...)
Вроде бы, всё.

AITap ★★★★★
()

Самый простой вариант: (полностью не читал, спать очень хочу): запаковать в архив, развернуть где нужно, чрутнуться, установить grub на /dev/sdXY.
как создать архив : http://ru.gentoo-wiki.com/wiki/Stage4

ymuv ★★★★
()
Ответ на: комментарий от ymuv

Там про /boot пишет я так понял как-будто он на отдельном разделе. Если все вместе, пропускаем.

ymuv ★★★★
()

Поставить загрузчик

Точно, совсем забыл, спасибо.


Там про /boot пишет я так понял как-будто он на отдельном разделе.

На образе виртуального накопителя такая разметка:

  • 1. /
  • 2. swap
  • 3. /home

На SSD ожидается примерно такая:

  • 1. /boot
  • 2. swap
  • 3. LUKS/dm-crypt
    • 3.1. LVM: PV/VG
      • 3.1.1. LV1, /
      • 3.1.2. LV2, /var
      • 3.1.3. LV3, /opt
      • 3.1.4. LV4, /srv
      • 3.1.5. LV5, /usr
      • 3.1.6. LV6, /home


Также мне хотелось бы быть уверенным, что 'cp -a' сможет сохранить все атрибуты файлов и директорий и правильно обработать специальные объекты вроде символических ссылок и пр. Или же для этой цели лучше воспользоваться чем-то другим?

dumka ★★
() автор топика
Ответ на: комментарий от mlyaghost

Ну сервер не сервер, но какие-то службы будут. Привычка выделять для этих ФС отдельные разделы осталась от FreeBSD. К тому же, мне кажется, так удобнее, а LVM застрахует меня на случай, если на каком-то из разделов закончится свободное место.

На самом деле планируется ещё отдельный раздел для /var/v12n, где будут храниться образы виртуальных машин. Может быть выделю /etc, но не уверен.

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

dumka ★★
() автор топика
Ответ на: комментарий от dumka

На SSD ожидается примерно такая:

1. /boot 2. swap 3. LUKS/dm-crypt 3.1. LVM: PV/VG 3.1.1. LV1, / 3.1.2. LV2, /var 3.1.3. LV3, /opt 3.1.4. LV4, /srv 3.1.5. LV5, /usr 3.1.6. LV6, /home

Вынос «частей» корневой файловой системы на отдельные разделы целесообразен только по двум причинам:

  • защита от заполнения все файловой системы, если куда-то пишется много данных
  • предотвращение фрагментации содержимого директорий «размазывания» по всему диску

Первая проблема возможна только на сервере, на обычном ПК, тем более с Debian целесообразен только вынос /home.
Вторая проблема возможна только на обычном механическом HDD, на SSD время доступа к любой ячейке (блоку данных) одинаково.

Также мне хотелось бы быть уверенным, что 'cp -a'

$ man cp
kostik87 ★★★★★
()
Ответ на: комментарий от ymuv

как создать архив: http://ru.gentoo-wiki.com/wiki/Stage4

Спасибо, статью прочитал.

Также мне хотелось бы быть уверенным, что 'cp -a' сможет сохранить все атрибуты файлов и директорий и правильно обработать специальные объекты вроде символических ссылок и пр.

Простите за самоцитирование. Т.е. 'tar -p' сделает то что мне нужно в этом отношении?

dumka ★★
() автор топика
Ответ на: комментарий от kostik87

Вынос «частей» корневой файловой системы на отдельные разделы целесообразен только по двум причинам

Можно ещё поэкспериментировать с различными ФС на этих разделах (ext4, btrfs, reiserfs), а также использовать dump/restore более гибко.

К тому же противопоказаний как-будто бы нет.

dumka ★★
() автор топика
Ответ на: комментарий от dumka

Т.е. 'tar -p' сделает то что мне нужно в этом отношении?

Если вы не используете xattr то да, иначе tar должен быть c патчем xattr.

kostik87 ★★★★★
()
Ответ на: комментарий от dumka

Если собираетесь использовать ext* файловые системы не забудьте при mkfs.ext* указать число inodes побольше, т.к. по-умолчанию их число зависит от размера файловой системы и может случиться так, если у вас на файловой системе будет много файлов, что inodes закончатся и вы ни чего не сможете на неё записать, даже если физически на ней ещё будет свободное место.

mkfs.ext* -N number-of-inodes
kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

не забудьте при mkfs.ext* указать число inodes побольше, т.к. по-умолчанию их число зависит от размера файловой системы

Да, спасибо, сталкивался с этим как-то давным-давно, когда устанавливал FreeBSD на накопитель малого объёма. Именно inode'ов и не хватило. Но там можно было в системе установки дописать необходимые параметры команде создания ФС.

dumka ★★
() автор топика
Ответ на: комментарий от dumka

Простите за самоцитирование. Т.е. 'tar -p' сделает то что мне нужно в этом отношении?

Ты невнимательно читал?

tar option we DIDN'T use:

p - preserve file attributes (necessary only during extraction of the tar, not during creation)

Переносил систему таким образом, всё работает.

Lighting ★★★★★
()
Ответ на: комментарий от Lighting

Внимательно. По ссылке был, наверное, перевод:

Опции tar которые мы использовали:

p - сохранять атрибуты файлов(НЕ УДАЛЯТЬ!!)

dumka ★★
() автор топика

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

aleks13
()
Ответ на: комментарий от kostik87

на обычном ПК, тем более с Debian целесообразен

помимо выноса /home вынос /var в отдельный раздел, т.к. тут содердится большинство часто меняющихся данных, а также /tmp в tmpfs, если достаточно памяти (от 2-4 Гб)

unanimous ★★★★★
()
Ответ на: комментарий от unanimous

unanimous

помимо выноса /home вынос /var в отдельный раздел ...

У кого как, в дистрибутиве, что я использую, в /var только логи и информация о списке установленных пакетов, /var/run в tmpfs, так что объём данных в /var не так уж и велик, к серьёзной фрагментации данных не приведёт. Прочих служб, использующих /var нет.

unanimous

... а также /tmp в tmpfs ...

Это уже само собой разумеющееся, ТС должен сообразить, тем более у него SSD, так что это ему жизненно необходимо для продления жизни накопителю.

kostik87 ★★★★★
()
Ответ на: комментарий от aleks13

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

Выполнить разбиение в виртуальной среде не получится - у меня нет под рукой свободных 120GB. Исходный виртуальный образ на порядок меньше. Да это и не нужно, мне кажется.

dumka ★★
() автор топика
Ответ на: комментарий от kostik87

Это уже само собой разумеющееся, ТС должен сообразить, тем более у него SSD, так что это ему жизненно необходимо для продления жизни накопителю.

Да, он догадался. Вообще, спасибо вам всем за комментарии, я решил отказаться от выделения для /var и /usr отдельных разделов, по крайней мере на начальном этапе. Средства LVM помогут мне вернуться к этому позже, если вдруг в ходе эксплуатации возникнет такая потребность.

dumka ★★
() автор топика
Ответ на: комментарий от dumka

Тогда цепляем SSD к текущей машине и по разделам перегоняем виртуальную систему, параллельно внося необходимые корректировки. Вхере из тхе проблем?

aleks13
()
Ответ на: комментарий от aleks13

Тхе проблем ваз ин май хэд, бут из ноу солвед.

dumka ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.