Резервное копирование Squashfs

Mksquashfs

Утилита сжатия.

pacman -S squashfs-tools arch-install-scripts

Смотрим разделы диска.

lsblk

Монтируем для чтения root,boot(home) и создаем образ, сжатие xz.

mount /dev/sda5 -o ro /mnt
mount /dev/sda2 -o ro /mnt/boot
mount /dev/sda7 -o ro /mnt/home

Архивируем.

mksquashfs /mnt ~/backup/myarch.sfs -comp xz

Исключение: -e /dir/file.

Отмонтируем по завершению.

umount -R /mnt

Восстановление

Из рабочей системы, или Live-usb. Форматируем и монтируем поврежденный или новый раздел, boot по необходимости и др.

mkfs.ext4 -L "root" -U "$(blkid -o value -s UUID /dev/sda5)" /dev/sda5
mkfs.ext2 -L "boot" -U "$(blkid -o value -s UUID /dev/sda2)" /dev/sda2
mkfs.ext4 -L "home" -U "$(blkid -o value -s UUID /dev/sda7)" /dev/sda7
mkswap /dev/sda3

mount /dev/sda5 /mnt
mount /dev/sda2 /mnt/boot
mount /dev/sda7 /mnt/home

Распаковываем сжатый образ.

unsquashfs -d /mnt -f ~/backup/myarch.sfs

Проверим и отмонтируем раздел.

ls /mnt
umount /dev/sda2
umount /dev/sda7
umount /dev/sda5

Монтируем раздел root(dev/sda5), boot и др., если нужно.

mount /dev/sda5 /mnt
mount /dev/sda2 /mnt/boot
mount /dev/sda7 /mnt/home
swapon /dev/sda3

Редактируем/Генерируем если нужно /etc/fstab, /etc/mkinitcpio.conf.

rm /mnt/etc/fstab
genfstab -pU /mnt > /mnt/etc/fstab

Делаем chroot в новую систему.

arch-chroot /mnt /bin/zsh

Или chroot /mnt /bin/bash Debian подобных.

Создаем initramfs-образы.

mkinitcpio -p linux

Настройка ключей pacman.

pacman-key --init
pacman-key --populate

Обновляем меню загрузчика груб, os-prober (для поиска других ОС).

pacman -S os-prober
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

Выходим из chroot, размонтируем разделы и перезагружаемся уже в восстановленную систему!

exit
umount /mnt/boot
umount /mnt/home
umount /mnt
reboot

Монтирование образа

mount ~/backup/myarch.sfs -t squashfs -o loop /mnt

Теперь вы можете скопировать из образа любые нужные файлы cp -p.

Добавить что-либо таким способом не получится, для этого нужно будет опять воспользоваться mksquashfs.

Отредактировать на GitHub