У меня есть два диска на моем компьютере, которые имеют следующую конфигурацию:
Drive 1: 160GB, /home
Drive 2: 40GB, /boot and /
К сожалению, диск 2, кажется, умирает, потому что попытка записи на него дает мне ошибки и проверяет SMART настройки показывают печальное положение дел.
У меня достаточно места на диске 1, поэтому я хотел бы переместить на него разделы / и / boot, вынуть диск 2 из системы, заменить диск 2 новым диском, а затем выполнить процесс в обратном порядке. .
Я полагаю, мне нужно обновить grub, и мне нужно кое-что переделать, но я довольно озадачен, как именно это сделать. Так как это мой главный компьютер, я хочу быть осторожным, чтобы не испортить вещи, чтобы я не мог загрузиться.
Мое окончательное решение для этого было сочетание нескольких методов. Я подключил диск и его замену к компьютеру одновременно. Новый диск был меньше старого, поэтому я сократил разделы на старом с помощью gparted. После этого я скопировал разделы на старый диск и вставил их на новый (также используя gparted). Затем я добавил флаг загрузки в правильный раздел на новом диске, чтобы он фактически был зеркалом старого диска.
Все это работало хорошо, но мне нужно было обновить grub2 в соответствии с инструкциями здесь: это было сделано, кажется, все работает. Спасибо всем за помощь.
Вам нужно будет загрузиться с живого компакт-диска. Добавьте для них разделы на диск 1, скопируйте все содержимое, а затем используйте sudo blkid
, чтобы получить UUID каждого раздела. На новом диске 1 / отредактируйте / etc / fstab, чтобы использовать новые UUID, которые вы только что искали.
Обновление GRUB зависит от того, является ли это GRUB1 или GRUB2. Если GRUB1, вам нужно отредактировать /boot/grub/device.map
Если GRUB2, я думаю, вам нужно смонтировать ваши разделы так, как они будут в реальной ситуации. Например:
sudo mkdir /media/root
sudo mount /dev/sda1 /media/root
sudo mount /dev/sda2 /media/root/boot
sudo mount /dev/sda3 /media/root/home
(Разумеется, заполняя любые фактические разделы, в которые вы копировали данные)
Затем привяжите mount / proc и / dev в / media / root:
sudo mount -B /proc /media/root/proc
sudo mount -B /dev /media/root/dev
sudo mount -B /sys /media/root/sys
Теперь подключитесь к диску, чтобы вы могли принудительно обновить GRUB в соответствии с новым макетом:
sudo chroot /media/root
sudo update-grub
Вторая команда подаст одну жалобу (я забыл, что это хотя ...), но это нормально игнорировать.
Проверьте это, удалив неисправный диск. Если это не сработает, плохой диск все равно сможет загрузить систему, но я считаю, что это все необходимые шаги.
Если вы замените диск сразу, вы можете использовать dd
(пробовал его на моем сервере несколько месяцев назад, и он работал как чудо).
Для этого вам также понадобится загрузочный CD.
dd if=/dev/sdb1 of=/media/drive1/backuproot.img
- sdb1 - ваш корневой (/
) раздел. Это сохранит весь раздел в файле. /boot
dd if=/media/drive1/backuproot.img of=/dev/sdb1
- запишите его обратно. /boot
Приведенное выше создаст 2 раздела с точно таким же размером, как и раньше. Возможно, вам придется настроить grub (проверьте пост macos).
Если вы хотите изменить размер своих разделов (как я сделал):
/
и /boot
; размер по вашему желанию) mount /media/drive1/backuproot.img /media/backuproot/
/
: mount /dev/sdb1 /media/sdb1/
cp -R
не сделает этого!) cp -R --preserve=all /media/backuproot/* /media/sdb1
/boot/
Это должно сделать это.