Как переместить установку Linux между разделами?


8

Я получил новый жесткий диск и хочу переместить существующую установку Linux (более конкретно: OpenSUSE 11.1) из раздела на старом жестком диске в раздел на новом жестком диске.

Мой план:

  1. загрузиться с загрузочного компакт-диска (скажем, загрузочный компакт-диск OpenSUSE)

    РЕДАКТИРОВАТЬ Как предложено многими людьми (спасибо всем)
    1a. скопировать все файлы с одного диска на другой

  2. изменить / etc / fstab ( добавить точки монтирования в новые разделы)
  3. изменить /boot/grub/menu.conf ( добавить загрузочный раздел)
  4. переустановить личинку

Я прав? Это все?
Или я пропустил какой-то важный шаг? (Я почти уверен, что сделал)


1
вы пропустили этап фактического копирования файлов из старого раздела в новый. некоторые могут сказать , что это довольно важно :)
Cas

Ответы:


4

Я бы сказал, что ты упустил одну вещь.

  1. загрузиться с загрузочного компакт-диска (скажем, загрузочный компакт-диск OpenSUSE)

    1a. скопировать все файлы с одного диска на другой

  2. изменить / etc / fstab (изменить точки монтирования на новые разделы)

  3. изменить /boot/grub/menu.conf (изменить загрузочный раздел)
  4. переустановить личинку

Я бы сказал, если вы настроите раздел на новом диске, чтобы он был совместим со старыми настройками, это должно быть довольно просто. Это может быть немного сложнее, если вам нужно отредактировать расположение точек монтирования внутри файлов ОС. Я бы порекомендовал сделать разделы достаточно похожими, чтобы все, что вам нужно было сделать, это загрузить, смонтировать новый диск, скопировать, изменить загрузочный раздел, переустановить grub на новый диск. удалите старый диск, и все готово!


Вы должны быть осторожны с копированием, хотя. Используйте опцию -a для cp.
Ким

5
или используйте rsync. у него есть преимущество в том, что если что-то прерывает копирование, вы можете просто снова запустить rsync, и он будет продолжать с того места, где остановился, а не начинать сначала. в порядке предпочтения правильными инструментами для этой работы являются: rsync, tar, cp -a
cas

+1 Предложение Крэйга выше - действительно хороший совет.
Axxmasterr

1

Вам необходимо скопировать файлы, как указал Axxmasterr. Все остальное выглядит правильно для меня. Другие пошли по очень похожему пути: перенесли установку GNU / Linux в новый раздел

Будьте осторожны с командой cp, которую вы используете для копирования файлов. Используйте параметр -a, чтобы обеспечить правильное поведение при нажатии на символические ссылки и сохранить информацию о владельце.

Некоторые люди использовали tar вместо cp для копирования файлов в новый раздел:

$ cd sourcedir; tar --create --file = -. | (cd targettdir; tar --extract --file = -)

Как указано в ссылке в начале, вы можете оставить старую запись в файле grub и просто добавить новую, если вам нужно вернуться.

Удачи!


Я рекомендую изменить точку с запятой в этой команде на && (условные операторы), чтобы последующие команды 'tar' не выполнялись, если chdir () завершился ошибкой по какой-либо причине (опечатка, разрешения, что угодно). Также я рекомендую использовать параметр -S (--sparse) с параметром 'tar' --create, чтобы включить обработку разреженных файлов, таких как, например, некоторые экземпляры / var / log / wtmp или / var / run / utmp).
Джим Деннис

1

Я думаю, что это сработает.

Если на каждом жестком диске только один раздел, а новый диск имеет тот же размер или больше, чем исходный диск, то более быстрый способ - просто клонировать старый (/ dev / xxx, где xxx = ваш оригинальный диск sda). , hdb и т. д.) на новый (/ dev / yyy).

Так что шаги будут:

  1. Загрузка с использованием живого CD
  2. sudo dd if = / dev / xxx of = / dev / yyy bs = 32k

Удостоверьтесь, что вы получили if (входной файл) и верны, иначе вы забьете весь свой старый диск.


Выполнение dd также скопирует файловую систему, возможно, она не подготовлена ​​к изменению размера диска (даже если на новом диске будет больше места)
Йоаким Элофссон

Правда, клонированный раздел на новом диске будет иметь тот же размер, что и исходный раздел на старом диске, поэтому вам придется расширить его, чтобы использовать новый диск полностью (я бы использовал gparted). Если вы также хотите изменить файловые системы, то подход "cp -a", упомянутый в другом ответе, лучше.
Фред Гамильтон

Вы можете изменить размеры файловых систем ext2-3-4, используя resize2fs. Другие файловые системы имеют аналогичные инструменты. Для ext также возможно уменьшить размер файловой системы. Я всегда предпочитал это по сравнению с подходами cp / tar / dump.
Кристоф Провост
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.