Назад | Перейти на главную страницу

Как клонировать жесткий диск Linux на флешку меньшего размера

В настоящее время я пытаюсь клонировать жесткий диск с установленным Linux на флешку на 16 ГБ. Жесткий диск 233 ГБ, но df -h показывает, что используется только 3.5G. Могу ли я использовать Clonezilla для создания образа, используя только выделенный объем пространства, и скопировать его на флэш-накопитель, где я могу развернуть образ на других ноутбуках с Linux?

Редактировать: Я попытался использовать Clonzilla с Parted Magic и попытался создать образ устройства, и возникла следующая ошибка:

split /home/partimag/lubuntu.img/lubuntu-vg-root.ext4.ptcl-img.gz.aa: Input/output error
Checking the disk space...
Failed to save partition /dev/lubuntu-vg/root.
Press Enter to continue

Вы не особо указали структуру своего диска, поэтому я сделаю несколько предположений. Пожалуйста, измените свое приложение или предоставьте дополнительную информацию, и я могу это отредактировать.

Предположения:

  • 1 физический диск
  • 2 раздела (загрузочный + LVM PV)
  • 2 LV (рут + своп)

Это в значительной степени стандартная установка CentOS / Red Hat, которая очень и очень распространена.

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

Начните снизу стопки. Уменьшите логический том LVM и его файловую систему.

lvreduce -rL 8G /dev/mapper/centos-root

Я указал здесь 8G, потому что он меньше, чем ваш 16G, и у вас все еще может быть небольшой объем подкачки.

Замените centos-root своим именем LV. Бегать lvs/lvdisplay/ls /dev/mapper если вы не уверены.)

Тогда вы сможете уменьшить LVM PV.

pvresize --setphysicalvolumesize 14G /dev/vda2

Замените / dev / vda2 своим диском.

Я выбрал 14G, потому что это чуть меньше вашего лимита в 16G, и нам не придется делать точные вычисления таким образом. Если ваш своп был размещен до корневого тома, все должно работать. Эта команда может завершиться ошибкой, если своп был размещен за корневым томом, размер которого вы только что изменили. Если это так, то теперь между корнем и подкачкой есть разрыв, и вам нужно сдвинуть подкачку в эту свободную область, чтобы PV мог уменьшиться. Я столкнулся с этим, но преодолел это с помощью следующих шагов.

/dev/vda2: cannot resize to *n* extents as later ones are allocated.

Сначала определите, какие экстенты нужно переместить.

pvs -v --segments /dev/vda2

Вы увидите LV с диапазоном экстентов после целевой границы. п выше.

pvmove --alloc anywhere /dev/vda2:n-n

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

Наконец, уменьшите размер раздела LVM.

fdisk /dev/vda2

Во-первых, напечатать (p) вашу таблицу разделов. (Вам это понадобится позже.) Тот, который вы хотите удалить (d) - это ваш раздел LVM и, надеюсь, он находится в конце диска. Затем воссоздайте его с новым меньшим размером. (n) Будьте абсолютно уверены, что он начинается в том же секторе, что и раньше. (Прокрутите вверх до того места, где вы распечатали исходную таблицу.) Сделайте 15 Гб, опять же, по математике, и мы знаем, что он поместится на флеш-накопитель 16 Гб, а это не совсем 16 Гб. Завершите эту операцию с помощью (w) для записи ваших изменений.

Убедитесь, что все меньше 16 ГБ, и повторите процесс CloneZilla.