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

У меня есть SSD с ОС Linux, который я сейчас не использую. SSD обычно находится на моем настольном компьютере, но я не буду использовать его некоторое время.

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

Я думал об использовании dd клонировать диск, чтобы я мог восстановить его в будущем, если мне нужно, чтобы моя настольная система снова заработала. Однако его размер составляет 240 ГБ, но в настоящее время используется только 5 ГБ, поэтому в идеале я хотел бы иметь возможность клонировать его без использования всего этого пространства.

  • Было бы это возможно, если бы я сжал выходное ISO-изображение?

  • Могу ли я просто "скопировать" файлы, которые мне понадобятся позже (включая скрытые?), С помощью rsync? Это будет всего ~ 5 ГБ - но смогу ли я правильно восстановить эти файлы? например; Может потребоваться сохранить разрешения при этом, чтобы предотвратить проблемы при восстановлении файлов на SSD?

  • Есть ли лучший метод?

ОС является либо Debian/ Ubuntu.

1 ответ

Вам просто нужно сохранить файлы, свободное место не имеет значения (если вы не хотите восстановить его файлы позже), поэтому dd Подобный инструмент будет начинаться с 235 ГБ (240 ГБ минус 5 ГБ) слишком много. Вместо того, чтобы тратить время и усилия и ограниченное время записи SSD, пытаясь заполнить все пустое пространство нулями, просто сделайте резервную копию 5 ГБ файлов.

rsync И его --archive флаг был бы хорош.

Для резервного копирования еще меньшего размера используйте образ squashfs. Это то, что использует большинство живых Linux-ISO. Запуск из другой работающей системы /ISO также позволит избежать каких-либо временных / используемых / заблокированных файлов. После монтажа (скажем, /mnt) в основном это:

mksquashfs /mnt backup.squashfs 

Вы можете использовать, вероятно, меньшее и медленное сжатие xz с:

mksquashfs /mnt backup.squashfs -comp xz  -b 1048576

Затем просто смонтируйте и скопируйте файлы обратно, когда будете готовы. Делает хорошее общее резервное копирование, так как это произвольный доступ - вам не нужно сканировать весь.tar.xz или


Если вы перезаписываете загрузочный сектор (и GRUB), вы можете также сохранить его копию. Для MBR это только первые 512 байт, поэтому dd хватит его в файл с именем MBR.dd:

dd if=/dev/sda of=MBR.dd bs=512 count=1

GPT может использовать sgdisk ( ref answer on U & L) вроде:

sgdisk --backup=<file> <device>

Для восстановления резервной копии используйте:

sgdisk --load-backup=<file> <device>

Но игнорирование таблицы разделов также хорошо, у вас будет возможность создавать и восстанавливать разделы гораздо меньшего размера (используя только 5 ГБ из 240 ГБ), а также просто восстановить GRUB с живым ISO.

Другие вопросы по тегам