У меня следующая ситуация:
Моя текущая установка Ubuntu (12.04) выполняется с внешнего жесткого диска (250 ГБ), потому что мне было лень покупать новый внутренний жесткий диск. Теперь у меня есть новый внутренний (120 ГБ), и я хочу переместить все на внутренний. Установка Ubuntu new не обсуждается, поскольку она перонализирована.
К счастью (я надеюсь, что) корневой раздел разделен на LVM, поэтому я надеюсь, что смогу переместить раздел на внутренний жесткий диск меньшего размера.
Возможно ли это? И где я могу найти помощь?
РЕДАКТИРОВАТЬ: Этот вопрос уже довольно старый и может быть устаревшим. Я добавил версию Ubuntu, которая использовалась тогда.
Как вы подозреваете, использовать LVM очень элегантно.
Сожмите существующую установку, чтобы она соответствовала меньшему диску.
Физически установите новый жесткий диск, отформатируйте и pvcreate
его, используйте vgextend
, чтобы добавить его в тот же vg, что и ваш корневой раздел. раздел
Используйте vgreduce
, чтобы удалить внешний жесткий диск из vg. Отключите старый диск /dev/sdOLD.
В приведенном ниже примере:
/dev/sdOLD
заменяет старый раздел /dev/sdNEW
заменяет новый раздел на его место. vgX
обозначает группу томов Пример: Конечно, вы должны быть на 100% уверены, что используете правильные устройства. Кроме того, важно иметь полное и современное резервное копирование, удаленное из системы.
pvcreate /dev/sdNEW
vgextend vgX /dev/sdNEW
pvmove /dev/sdOLD
vgreduce vgX /dev/sdOLD
С помощью update-grub
и grub-install
загрузите новый корневой диск
Готово.
Во-первых, если для текущей установки вы использовали весь диск объемом 250 ГБ, вам нужно уменьшить его до размера диска 120 ГБ. Вы можете сжать только файловую систему ext4, пока она не смонтирована, поэтому вам нужно будет загрузиться с работающей системы Ubuntu (CD или USB) или специализированной обслуживающей работающей системы, такой как GParted live . Вы можете использовать resize2fs
или GParted для изменения размера существующей файловой системы.
Как только вы сократили файловую систему (ы) существующей установки, чтобы уместить ее на новом диске, вы можете выполнить оставшуюся часть перемещения с файловой системой, смонтированной, если хотите. Если существующая файловая система помещается на новый диск, вы можете выполнить передачу без размонтирования чего-либо или перезагрузки.
В следующем описании я покажу, как перейти от физического тома /dev/sdb1
к физическому тому /dev/sda1
с помощью существующей группы томов под названием oldvg
. Обязательно настройте буквы дисков и номера разделов в соответствии с вашей системой.
Чтобы выполнить прямую передачу:
cfdisk
, fdisk
, parted
,…). Смотрите, например Как добавить дополнительный жесткий диск? pvcreate /dev/sda1
vgextend oldvg /dev/sda1
pvmove /dev/sdb1 /dev/sda1
vgsplit oldvg newvg /dev/sda1
Другой метод - сделать существующие логические тома зеркальным томом с помощью lvconvert --mirror
, установить зеркало на новом диске, а затем разделить зеркала с помощью lvconvert --splitmirrors
. Таким образом, вы получаете две копии своих данных, и после разделения каждая копия ведет свою жизнь.
После того, как вы сделали копию, вам нужно сделать новый диск загрузочным. Смонтируйте файловую систему для этого. Предполагая, что он смонтирован на /mnt
, запустите эти команды как root:
chroot /mnt
# if the name of the volume group has changed, edit /etc/fstab
update-grub
grub-install /dev/sda
В качестве альтернативы, вы можете использовать Clonezilla . Это мощный инструмент для манипулирования дисками и клонирования, и я думаю, что он охватывает вашу ситуацию, но у меня нет опыта работы с ним.