Наверное, лучшее, что есть в linux — это его гибкость. Linux можно установить как на новое (с небольшими оговорками) железо, так и на старый Pentium III, который валяется у вас на балконе. Хуже того, возможна установка и даже просто копия работающей системы на внешний жёсткий диск. Чем, собственно, мы сегодня и займёмся.

Здесь представлен алгоритм действий, которые помогут сделать копию системы. Все тайные действа проводились на имеющемся в наличии ноутбуке с установленным ArchLinux, хотя надо отметить, что дистрибутив не имеет значения. Конечно, можно осуществить и обратное — клонировать настроенную, работающую систему с тестового внешнего диска на основной. Итак, поехали:

Загружаемся с live-usb, live-cd.

Проверяем командой fdisk -l имеющиеся диски, разделы и то, как они отображаются. После чего при помощи cfdisk создаём необходимые разделы на диске, куда будут заливаться данные. В примере и далее это разделы / и /home, на внешний HDD.

Создание файловых систем на только что созданных разделах:

# mkfs.ext4 /dev/sdb1  # это под корень
# mkfs.ext4 /dev/sdb5  # это под /home

Раздел подкачки не создавался. Ваша разметка может быть иной.

Монтирование всех разделов. Как это может выглядеть:

# mkdir /mnt/arch # создание каталога для монтирования корня основной системы
# mkdir /mnt/arch/home # создание каталога для монтирования /home основной системы
# mkdir /mnt/backup # создание каталога для монтирования корня на hdd
# mkdir /mnt/backup/home # создание каталога для монтирования /home на hdd
# mount /dev/sda1 /mnt/arch # непосредственно монтирование
# mount /dev/sdb1 /mnt/backup # и внешний диск

Копирование содержимого основной системы на hdd. Примерно так:

# cd /mnt
# cp -ax  bin/ dev/  lib64/ media/ opt/ sbin/ srv/ var/ boot/ etc/ lib/ sys/ usr/ /mnt/backup

То же самое с домашней директорией /mnt/arch/home

Если желаете наблюдать за процессом, добавьте ключ -v

Внесение правок

Правим /etc/fstab и /boot/grub/menu.lst в /mnt/backup

Можно отмонтировать корневые разделы и повторить это с /home.

Установка загрузчика

Примонтировать разделы / и /boot, если /boot на отдельном разделе, чрутнуться в склонированную систему и установить загрузчик:

# mount /dev/sdb1 /mnt/backup
# mount -t proc none /mnt/backup/proc
# chroot /mnt/backup /bin/bash
# grub
# root (hd1,0)
# setup (hd1)

Куда вы будете устанавливать загрузчик вам виднее, с приведённым в примере (hd1) это может не совпадать.

Примечание: для grub 2 установка загрузчика выглядит немного иначе:

# mount /dev/sdb1 /mnt/backup
# mount -t proc none /mnt/backup/proc
# chroot /mnt/backup /bin/bash
# grub-install /dev/sdb
# grub-mkconfig -o boot/grub/grub.cfg

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

На этом всё.

Кстати: при правке grub и /etc/fstab гораздо удобнее пользоваться метками дисков. Для назначения меток следует воспользоваться командой e2label:

$ sudo e2label /dev/sda1 new_label
$ cat /etc/fstab
  LABEL=unix-boot  /boot ...
  LABEL=unix-root  /     ...
  LABEL=unix-home  /home ...
$ cat /boot/grub/menu.lst
  ...
  kernel /boot/vmlinuz-XXX root=/dev/ram0 real_root=LABEL=unix-root
  ...

P.S. Arch-специфично: в HOOKS файла /etc/mkinitcpio.conf должен быть прописан usb, если его нет, придётся добавить и пересобрать initramfs. ⤧  Следующая запись Знакомимся с ABS