Я хотел бы создать копию моей работающей установки Linux на USB-накопителе емкостью 16 ГБ. Текущая система представляет собой базовый ПК ATX, используемый в качестве удаленного сервера в качестве удаленного сервера. Я хотел бы иметь возможность резервного копирования на случай отказа жесткого диска. В основном кто-то выключал компьютер, подключал USB-накопитель, содержащий точную копию системы, и система загружалась и запускалась с USB-накопителя столько, сколько необходимо, то есть до тех пор, пока я не смогу добраться до места с новой надлежащей заменой жесткого диска. .
Текущий размер жесткого диска составляет 120 ГБ. Используемое пространство составляет около 5 ГБ. Итак, вопросы:
1. Как создать его точную (загрузочную) копию на USB-накопителе размером 16 ГБ?
2. Как скопировать все обратно на диск большего размера (например, 250 ГБ или 500 ГБ), когда я устанавливаю новый жесткий диск? Желательно расширить файловую систему до размера всего диска, потому что остальное свободное пространство иногда используется в качестве хранилища для покадровой фотографии.
Вот еще несколько подробностей о текущей конфигурации диска:
fdisk -l
Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xac46573c
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 14594 116707328 8e Linux LVM
Disk /dev/mapper/VolGroup-lv_root: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/VolGroup-lv_swap: 1979 MB, 1979711488 bytes
255 heads, 63 sectors/track, 240 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/VolGroup-lv_home: 63.8 GB, 63837306880 bytes
255 heads, 63 sectors/track, 7761 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
df -BG
Filesystem 1G-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root
50G 3G 45G 5% /
tmpfs 1G 0G 1G 0% /dev/shm
/dev/sda1 1G 1G 1G 20% /boot
/dev/mapper/VolGroup-lv_home
59G 1G 55G 2% /home
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ Игра с низкоуровневым инструментом может нанести вред вашей системе! Не спрашивайте меня о нанесенном вами потенциальном ущербе!
Для такого рода работ я использую личный версия Debian-Live, собран со всеми необходимыми дисковыми инструментами
gsmartcontrol
smartmontools
partclone
ntfs-3g
lvm2
mdadm
Есть несколько шагов для резервного копирования вашей машины:
parted
, sfdisk
, gparted
или другой cfdisk
... С последующим mdadm
и / или lvm2
инструменты.Копирование данных Копирование данных может быть выполнено с помощью следующей команды: tar -cpC /sourcePath . | tar -xpC /destPath
. Для резервного копирования смонтированных разделов с активным подмонтированием я использую следующие обходной путь (образец корневого каталога резервной копии /
):
# Debian-live is automatically mounted to /media/DEBIAN-LIVE and /media/persistance
mkdir /media/persistance/root/Backup
mount --bind / /mnt
tar -zcpC /mnt . >/media/persistance/root/Backup/root.tgz
umount /mnt
Сделать систему загрузочной. Это более тонко: если вы загрузились Debian-Live вы должны построить свою целевую структуру, chroot
в них, чем бежать grub-install
:
# mount /dev/mapper/VolGroup-lv_root /mnt
# mount dev/sda1 /mnt/boot
# # /home is useless for installing grub
# for bind in proc sys dev{,/pts};do mount --bind /$bind /mnt/$bind;done
# chroot /mnt
# /usr/share/mdadm/mkconf >/etc/mdadm/mdadm.conf
# update-initramfs -u -k all
# grub-install
# exit
# umount /mnt/{dev{/pts,},sys,proc,}
Затем (в надежде, что все работает нормально) я перезагружаюсь.
partclone
Есть в общем и целом решение для поддержки целых разделов, но при хранении побайтово каждый раздел, вы необходимость место назначения больше или того же размера, что и ваш источник: (в любом случае это может быть сохранено на небольшом USB-носителе).
Основа такая же, построена самостоятельно Debian вживую со всеми необходимыми инструментами, но partclone
.
Чем хранить весь мультизагрузочный диск с WinXP и Linux на одном диске (пример):
mkdir ReleventDirectoryName
cd $_
SOURCE=sdA
dd if=/dev/$SOURCE count=1 | gzip >bblock.gz
sfdisk -d /dev/$SOURCE >sfdisk.dump
partclone.ntfs -c -s /dev/${SOURCE}1 | xz >part1-ntfs.pclone.xz
partclone.ext4 -c -s /dev/${SOURCE}2 | xz >part2-ext4.pclone.xz
partclone.ext4 -c -s /dev/${SOURCE}5 | xz >part5-ext4.pclone.xz
и так далее...
к восстановить, вам нужно только обратить процесс:
cd ReleventDirectoryName
DEST=sdA
zcat bblock.gz | dd of=/dev/$DEST
sfdisk /dev/$DEST <sfdisk.dump
partclone.ntfs -r -o /dev/${DEST}1 < <(xzcat part1-ntfs.pclone.xz)
partclone.ext4 -r -o /dev/${DEST}2 < <(xzcat part2-ext4.pclone.xz)
partclone.ext4 -r -o /dev/${DEST}5 < <(xzcat part5-ext4.pclone.xz)
Затем ... перезагрузитесь ...!