“Сквош” — звучит как древнее проклятье, действует с профессиональной надежностью и точностью.

Team zBrain
zBrain
Published in
2 min readMay 21, 2020

Перенос системы с одного железа на другое может понадобиться в самый неожиданный момент. Может вы, наконец, поменяли свой ноутбук на более современный, или перешли с HDD на SSD. Ну или хотите залить вашу ОСь в облако, пересечь границу с чистым девайсом, и развернуться уже в нужном месте с привычной системой. В общем, каждый сходит с ума по-своему. А вот на вопрос, как же перенести любимый или не очень Linux с одной машины на другую, нашим Unix-гуру приходиться отвечать всем одинаково (и очень часто). Сегодня мы решили пойти на решительный шаг и записать данную инструкцию, опубликовав её для всех на самом видном месте.

Итак, дано:

- диск с системой

- диск, на который мы систему будем переносить

- загрузочная флешка

Для начала нам понадобиться сам “страшный зверь сквош”, он же squash. Squashfs поставляется с пакетом squashfs-tools. Загружаемся с флешки, ищем в репозитории нужный пакет.

Создаём папку для монтирования:

mkdir /mnt/myOS

Монтируем систему, которую будем переносить:

mount /dev/sda1 /mnt/myOS

Создаём директорию, для сборки нашего squash. Я буду сохранять на соседний диск:

mkdir /mnt/mysquash

mount /dev/sdc1 /mnt/mysquash

Собираем:

mksquashfs /mnt/myOS /mnt/mysquash/os.squashfs -progress -comp xz

Ждём сборки. This may take some time! ©

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

Подготавливаем новый диск. Для простоты примера я буду использовать простую разметку. Но ничего не мешает вам разделывать диск на свой вкус.

parted /dev/sdb mklabel msdos mkpart primary ext4 0% 100%

mkfs.ext4 /dev/sdb1

Монтируем:

mkdir /mnt/newOS

mount /dev/sdb1 /mnt/newOS

И распаковываем:

unsquashfs -f -u -d /mnt/newOS /mnt/mysquash/os.squashfs

Биндим псевдо-fs:

for i in dev proc run sys ; do mount -bind /$i /mnt/newOS/$i ; done

Hint. Делаем lsblk -f и записываем UUID нового тома.

Заходим в развёрнутую систему:

chroot /mnt/newOS /bin/bash

Редактируем fstab:

vim /etc/fstab ,

и меняем название тома (или томов) на новое.

Генерируем конфиг grub:

grub-mkconfig -o /boot/grub/grub.cfg

Записываем загрузчик:

grub-install /dev/sdb

Выходим:

exit

Всё, поздравляем, система успешно перенесена на новый диск.

--

--

Team zBrain
zBrain
Editor for

zBrain— онлайн школа для специалистов по кибербезопасности