1

Мой домашний сервер работает под управлением Debian Lenny, и я собираюсь обновить системный диск до более крупного диска.

В процессе я хочу воспользоваться возможностью реорганизовать разделы и изменить их размер. В целях обучения я планирую перейти с таблицы разделов MBR на GPT.

Из-за этих двух изменений я не могу просто запустить "dd if =/old/drive of =/new/drive" (ну, не без много дополнительной работы потом). Я мог бы использовать процесс debootstrap для новой установки на новый системный диск, но я использовал эту технику во время последнего обновления системы, и это, вероятно, излишне для этого.

Можно ли просто скопировать разделы со старого диска на новый?

  • Будет ли работать "dd if =/dev/hda1 of =/dev/hdb2" , предполагая, что /dev/hdb2 больше, чем /dev/hda1? (Если это так, размер файловой системы можно изменить, чтобы воспользоваться новым большим разделом, верно?)

  • Будет ли parted (или gparted) лучшим инструментом для копирования содержимого разделов?

2 ответа2

1

Ответы: да и да. При копировании меньшего раздела для увеличения GParted в основном делает то же самое: dd «ИНГ старого содержания и запуск resize2fs для целевого раздела. resize2fs требуются некоторые неприятные вычисления в секторах, поэтому я бы порекомендовал вам использовать (g) утилиты с разделением, которые делают это автоматически, но, конечно, это возможно с помощью двух упомянутых команд. Также parteds делает некоторые проверки и проверки работоспособности, которые не позволят вам выстрелить себе в ногу.

Миграция GPT не имеет ничего общего с содержимым раздела: таблица разделов, независимо от того, является ли она GPT или MBR, просто указывает ядру, как позиционировать окно чтения / записи для файла устройства раздела; это никак не влияет на содержимое раздела.

0

После смерти:

Все шло в основном так, как и ожидалось, но была пара икок, которые я должен задокументировать. Естественно, все копирование разделов было сделано с LiveCD (Xubuntu 9.04, так как это было то, что я имел в виду, но любой недавний LiveCD должен был делать).

  • Gparted отказался копировать раздел на старом диске в существующий (пустой) раздел на новом диске. (parted мог бы сработать, но отказался из-за какого-то "несовместимого" флага файловой системы на моем системном разделе.) Вместо этого мне пришлось отказаться от схемы разделов и позволить Gparted создать раздел как часть операции копирования.

  • Grub2 был необходим на новом диске (Grub1 не понимает GPT). Это означало установку Grub2 на новый диск в среде chroot (аналогично chroot, описанному в следующих руководствах):

    1. Пока chroot находится в новом системном разделе, запустите apt-get install grub-pc для установки Grub2 (chroot гарантирует, что мы получим его из репозиториев Debian вместо репозиториев LiveCD Ubuntu).

    2. Следующим шагом должен быть запуск upgrade-from-grub-legacy для установки загрузчика и настройки базового grub.cfg. Но пакет Grub2 в официальном репозитории Debian Lenny (в настоящее время v1.96+ 20080724-16) устанавливает поврежденный файл /etc/grub.d/20_memtest86+, и сценарий обновления прерывается во время его обработки. Отредактируйте этот файл следующим образом:

      1. . /usr/lib/grub-mkconfig_lib в . /usr/lib/grub/update-grub_lib

      2. Измените все экземпляры " linux16 " на " linux ". Это директива ядра Grub2 - этот шаг не требуется для запуска скрипта обновления, но он не загружает директиву Memtest86+ должным образом.

      3. Запустите upgrade-from-grub-legacy. Теперь он должен завершиться правильно.

    3. Обновите все жестко запрограммированные монтирования в /etc /fstab. Поскольку разделы были скопированы и изменены их размеры, их UUID должны быть одинаковыми. Но разделы подкачки не будут иметь такой же UUID, поэтому потребуется обновление.

    4. Перепроверьте все, скрестите пальцы, выключите компьютер, отсоедините старый системный диск, перезагрузите компьютер.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .