- Перенос ОС и загрузчика с одно на другой жесткий диск.
- Как перенести загрузочный раздел с одного диска на другой
- Как перенести загрузочный раздел с одного диска на другой
- Использование установочного диска или диска восстановления Windows 7
- Перенесение файлов загрузки с использованием утилиты bcdboot.exe
- Проверяем и редактируем BCD
- Вместо заключения, или «Русскоязычное меню мультизагрузки»
- Перенос системы LINUX на другой винчестер с переразбивкой разделов
Перенос ОС и загрузчика с одно на другой жесткий диск.
Буду менять один жесткий на другой(по причине умирания первого). Бекапы есть,можно экспериментировать.
ОС Опенсюсе. Я делал раньше такой перенос простой переустановкой ОС,с переносом списка пакетов.(стандартными средствами яста при установке).
Также пытался однажды скопировать систему с установкой груба и созданием пункта в меню с путями.Грузилось-но куча ошибок при загрузке с именами старого диска-неочень обрадовали поэтому переустановил и там.
Вобщем вопрос: Есть диск в которых вся система(с соответствующими разделами). И пустой диск.
Как правильно перенести систему без переустановки? Правильно ли просто скопипастить с созданием груба на новый? Или копировать разделы Gparted-ом? Какие проблемы будут,или лучше переустановить со списком пакетов?
Спасибо за помощь.
1) разбивка
2) cp -ax
3) подправка всевозможных конфигов: fstab (!), crypttab, mdadm (при наличии)
4) chroot + grub-install
Вот пункт 3 мне кажется по времяпотерям сравним с переустановкой и автоматической установкой пакетов.
Посмотрел у себя — привязка к жёсткому диску/UUID ФС есть только в fstab и crypttab.
Тогда 1) с установкой UUID существовавшего раздела
«cp -ax» у меня переносил всё много раз. На новом HDD править /etc/fstab и /boot/grub/grub.cfg или /boot/grub/menu.lst. Также в YaST есть специальное средство для создания резервных копий, но я им не пользовался. Может быть, систему можно перенести им.
Он создает только резервные копии установленных пакетов и недефолтных конфигов. хотя да можно попробовать.
можно весь диск скопировать с помощью dd.
а затем изменить размеры разделов с помощью gparted если надо.
можно попробовать цп или дд, а потом с лайв сиди восстановить загрузчик
Эмм..можно подумать что вбить 10 букв это сильно сложно
DD уже совветовали, еще можно воспользоваться clonzilla’ой
Четкие места где вбивать? (кроме груба и фстаб,что очевидно)
Я предполагаю что в какомнить удев в фигзнает каком конфиге указаные диски по uuid,или vinit у себя в сотнях конфигах гдето спрятал ид жесткого.
И именно то что я не хочу в качестве парсера изучать весь миллион конфигов,что абсурдно и по времяпотерям равносильно сидению за компом с чашкой чая и глядению в монитор на автоматическую установку пакетов в системе с нуля.
Не знаю, я тупо поправил fstab и lilo, груб у меня не пашет. заняло это полминуты, и все потом пахало
1.Перенос около 15гб рабочей системы(только корень) равносилен по времени скачиванию на 100Мб около 4.5Гб пакетов с их установкой,т..е копирование рабочей системы одинаково установке.
Т.е. вполне логично произвести автоматическую установку с установкой списка пакетов и репозиториев,после перенести home и все остальное.
Да я засекал-установка заняла 20 минут,копирование файлов+2 минуты на изменение старых имен дисков=20 минут.(жесткие диски сата2)
Я сделал сначала перенос,потом переустановку с загрузкой пакетов(ради науки естественно).
2.Я зря это затеял т.к. когда начал ковырять провода обнаружил что питание у старого жесткого отходило,поэтому он давал «лаг»,которого я пугался последние два дня.(хотя отмечу-линукс не падал,сыпал ошибками от ata. но жесткий щелкал и запускался,даже данные не потерялись,удивительно).И зря выходит обзавелся новым жестким.
Источник
Как перенести загрузочный раздел с одного диска на другой
Как перенести загрузочный раздел с одного диска на другой
Начальные условия: в вашей системе более одного жесткого диска. На одном из них уже установлена операционная система, а на второй вы установили Windows 7. Возникла необходимость удалить из системы жесткий диск, на котором Windows 7 не установлена. Но оказалось, что без этого диска ваша система загружаться не хочет.
Это произошло потому, что перестало соблюдаться одно из трех условий успешной загрузки:
- раздел, с которого выполняется загрузка, должен быть активным;
- загрузочный сектор раздела должна быть совместим с bootmgr;
- на активном разделе должны находиться файлы загрузки операционной системы. Для Windows 7 это файл bootmgr и хранилище данных конфигурации загрузки (BCD), находящееся в скрытой и системной папке Boot.
Рассмотрим решение проблемы на примере конфигурации, представленной на рисунке
На скриншоте «Управления дисками» видно, что диск С:, на котором установлена Windows 7, не активен. Активным является диск D:. Файлов загрузки Windows 7 (они скрытые и системные) на диске С: так же не обнаружится. Задача: перенести загрузчик с диска D: на диск С:, то есть обеспечить соблюдение вышеназванных условий.
Использование установочного диска или диска восстановления Windows 7
При наличии этих дисков перенос загрузочных файлов не составляет труда. Физически отключите «ненужный» жесткий диск, загрузитесь с диска, установив в BIOS привод CD-DVD первым загрузочным устройством, войдите в среду восстановления. После того, как закончится сканирование и поиск установленных операционных систем, выполните «Восстановление запуска». Программа восстановления подготовит нужным образом жесткий диск и скопирует на него необходимые файлы. После перезагрузки возможность загрузки будет восстановлена.
Если у вас нет ни установочного диска, ни диска восстановления, можно воспользоваться способом, описанным ниже.
Перенесение файлов загрузки с использованием утилиты bcdboot.exe
Условно можно разделить предстоящую операцию на три этапа, соответствующих трем необходимым условиям успешной загрузки.
Первый: войдите в оснастку «Управление дисками» (Win + R, в строке «Выполнить» наберите diskmgmt.msc и нажмите OK) и посмотрите, какая буква присвоена первому слева разделу диска, который планируется оставить. Именно этот раздел мы сделаем загрузочным и активным: щелкните правой кнопкой мыши по выбранному разделу и выберите пункт контекстного меню «Сделать раздел активным». Учтите, что этот раздел должен иметь атрибут «основной».
Второй: запустите командную строку с правами администратора. Все команды, о которых пойдет речь далее, будут выполняться последовательно без выхода из командной строки.
где X — номер диска, который предполагается оставить, в списке дисков (команда list disk).
Для этого понадобится утилита bootsect.exe, которую, при отсутствии установочного диска, можно взять здесь. Заранее скачайте и распакуйте ее, например, в корневой каталог раздела С:.
примечание: опыт показывает, при наличии в конфигурации 2-х и более HDD ключ /force необходим.
— ключ /l — выбор языковых параметров менеджера загрузки. Если ваша система не русскоязычная, используйте другие значения этого ключа, например, для английского языка — en-Us, для немецкого — de-DE, и т.д.
— ключ /s — определяет букву тома, назначенную целевому системному разделу, в который копируются файлы среды загрузки. Это раздел, который мы сделали активным. Так как микропрограмма команды по умолчанию использует текущий системный раздел (до извлечения жесткого диска — это раздел D:), применение этого ключа с буквой предполагаемого загрузочного раздела — обязательно!
- Делаем диск активным. Есть два способа сделать нужный раздел активным.
- Перезаписываем загрузочный сектор (делаем его совместимым с bootmgr):
- Переносим BCD и файл bootmgr на новый активный раздел:
Проверяем и редактируем BCD
Увеличить рисунок
По результатам выполнения команды проверьте параметры (подчеркнуты на скриншоте):
- в секции «Диспетчер загрузки Windows» параметр device должен быть равен букве нового активного раздела, в нашем случае — С:.
- в секции «Загрузка Windows» параметры device и osdevice должны быть равны букве раздела, на котором сейчас расположены каталоги Windows. В нашем случае, это тоже С:.
- в случае несоответствия внесите необходимые изменения с помощью команд:
Обычно выполнение команд не требуется, но проверить не помешает. Вместо идентификатора
Таким образом, перенесение файлов загрузки на другой диск — не такая сложная задача.
Вместо заключения, или «Русскоязычное меню мультизагрузки»
В связи с тем, что программа восстановления запуска, выполняющаяся из среды восстановления, использует параметры «по-умолчанию», язык менеджера загрузки становится английским. При наличии одной загружаемой системы это не заметно, а при наличии меню мультизагрузки — бросается в глаза. Если вас это не устраивает, выполните в командной строке:
Выполнить ее нужно уже после перенесения файлов загрузки в новый раздел.
Источник
Перенос системы LINUX на другой винчестер с переразбивкой разделов
Когда-то давным давно в далекой-далекой галактике мне понадобилось перенести мою систему linux с одного винчестера на другой, а пользоваться проприетарщиной ужас, как не хотелось. Погуглив и поискав с помощью других поисковиков я нашел для себя решение, которое линукс-админу может показаться смешным, а меня оно тогда здорово выручило.
В общем — вот оно. Бейте ногами, режьте на части. Встречайте!
Первое, что нам необходимо сделать — это разметить новый жесткий диск в соответствии с желаниями и, возможно, исключив ошибки предыдущей разметки (если на исходном диске что то не нравится).
Разберем на конкретном примере моей системы. Я собираюсь перенести систему с HDD=80Gb на HDD=20Gb.
Мой диск, объемом 80Gb размечен следующим образом:
/dev/hda1 — /boot (250 Mb)
/dev/hda2 — swap (1Gb)
/dev/hda3 — extended (20Gb) (включает в себя /dev/hda5, /dev/hda6, /dev/hda7, /dev/hda8)
/dev/hda5 — / (5Gb)
/dev/hda6 — /tmp (512Mb)
/dev/hda7 — /usr (10Gb)
/dev/hda8 — /var (5Gb)
/dev/hda4 — /home (54Gb)
/home очень сильно забит информацией, потому его в клонирование я не включаю.
Выставив перемычки как положено, я подключаю новый HDD в систему. Он принял метку hdb
Можно разметить его с помощью ЛЮБОЙ удобной для вас утилиты. Мне было проще воспользоваться GPARTED — так визуально понятнее, да и видно там сразу, сколько реально места занято данными на той или иной партиции, что поможет определить стоит ли выделять столько много (или мало) места.
Я разметил новый диск (/dev/hdb) следующим образом:
/dev/hdb1 — /boot (250 Mb)
/dev/hdb2 — swap (1Gb)
/dev/hdb3 — extended (14Gb) (включает в себя /dev/hdb5, /dev/hdb6, /dev/hdb7, /dev/hdb8)
/dev/hdb5 — / (1Gb)
/dev/hdb6 — /tmp (512Mb)
/dev/hdb7 — /var (5Gb)
/dev/hdb8 — /usr (7Gb)
/dev/hdb4 — /home (4Gb)
Следующим шагом надо подмонтировать все созданные разделы на новом HDD к существующей системе.
Для этого на существующей системе я создал директорию /backup, в которой создал поддиректории /boot, /root, /var, /usr (/tmp — не надо), в соответствии с разделами на которые я разделил новый HDD.
Далее осуществляем само монтирование:
sudo mount /dev/hdb1 /backup/boot
sudo mount /dev/hdb5 /backup/root
sudo mount /dev/hdb7 /backup/var
sudo mount /dev/hdb8 /backup/usr
Вот и подобрались к самому интересному, но отнюдь не самому простому месту, к копированию данных.
В отличии от Windows Linux позволяет скопировать себя ПОЛНОСТЬЮ. Но надо помнить один важный момент — в системе есть аттрибуты на директории и файлы, а так же симлинки и хардлинки. Так вот необходимо так скопировать систему, чтоб все эти связи не растерялись. Для такой процедуры, по мнению больших специалистов, лучше всего подходит команда tar.
Смысл в том, что мы НЕ БУДЕМ архивировать файлы на диск, а будем их переносить через так называемую «трубу» или «поток» на приемный HDD.
Для упрощения процедуры переноса я написал скрипт backup.sh:
#!/bin/sh
cd /
tar -cf — dev initrd.img opt srv bin cdrom etc initrd lib sbin sys vmlinuz | (cd /backup/root; tar -xvpf -)
cd /boot
tar -cf — * | (cd /backup/boot; tar -xvpf -)
cd /var
tar -cf — * | (cd /backup/var; tar -xvpf -)
cd /usr
tar -cf — * (cd /backup/usr; tar -xvpf -)
немного объясню, что к чему:
«cd /»
— переход в root
«tar -cf — dev initrd.img opt srv bin cdrom etc initrd lib sbin sys | (cd /backup/root; tar -xvpf -)
» — заtarивание перечисленных директорий и файлов с передачей их на расtarивание на приемный HDD.
Узнать какие директории и файлы надо переносить несложно. Просто выполните команду «ls /» тем самым получив листинг вашей системы начиная с /.
В моем случае это:
ls /
backup boot dev home initrd.img media opt root srv tmp var
bin cdrom etc initrd lib mnt proc sbin sys usr vmlinuz
Из всего этого «добра» нам нужно выделить то что будет находиться в /.
Так, как я выделил отдельные партиции на диске под /boot, /var, /tmp, /usr и /home, получается что их на данном шаге нужно пропустить. Следовательно берем только dev initrd.img opt srv var
bin cdrom etc initrd lib sbin sys vmlinuz
А с остальными проще:
cd /boot
— заходим в существующий /boot
tar -cf — * | (cd /backup/boot; tar -xvpf -)
переносим все содержимое /boot в /backup/boot
Итак запускаем скрипт backup.sh и идем отдыхать на некоторое время. У меня все заняло около 10 минут.
Теперь еще один важный момент на который я вначале не обратил внимание, за что поплатился лишним временем и головной болью.
НЕДОСТАТОЧНО просто скопировать данные на партиции /var, /tmp, /usr.
После всех процедур переноса нам необходимо СОЗДАТЬ эти директории на приемном диске, как точки монтирования тех самых партиций (и все те точки монтирования, которые мы исключили при переносе — /home, /media, /tmp, /var, /mnt, /proc, /usr) ОБЯЗАТЕЛЬНО С ТЕМИ ЖЕ аттрибутами! То есть:
sudo mkdir /backup/root/home
sudo mkdir /backup/root/media
sudo mkdir /backup/root/tmp
sudo mkdir /backup/root/var
sudo mkdir /backup/root/mnt
sudo mkdir /backup/root/proc
sudo mkdir /backup/root/usr
какие выставить аттрибуты на директории можно узнать набрав команду ls -la / на исходной системе. Но кроме /tmp везде должен быть владелец root группа root и права 766. На /tmp надо поставить права 777.
Теперь надо на приемном HDD поправить fstab, если необходимо (если вдруг вы СОВСЕМ ПО ДРУГОМУ разметили диск). А так же поправить menu.lst загрузчика GRUB.
В UBUNTU что в fstab, что в menu.lst все диски прописаны через UUID а не просто /dev/hda.
узнать какой у вашего диска UUID можно с помощью команды: ls -l /dev/disk/by-uuid, на выводе должно получиться что то вроде:
lrwxrwxrwx 1 root root 10 2008-02-17 17:45 11815c66-5ae7-4497-9039-51de9adef664 -> ../../hda2
lrwxrwxrwx 1 root root 10 2008-02-17 17:45 78711a48-6776-4474-8fa8-87016aad83a2 -> ../../hda6
lrwxrwxrwx 1 root root 10 2008-02-17 17:45 83fded3d-37c4-4d85-a965-a7bbe326178a -> ../../hda7
lrwxrwxrwx 1 root root 10 2008-02-17 17:45 a60e482c-8260-48fb-a19e-f5f906d4d444 -> ../../hda8
lrwxrwxrwx 1 root root 10 2008-02-17 17:45 bc7607fe-3bf2-4bc1-adce-8ab749a271c9 -> ../../hda1
lrwxrwxrwx 1 root root 10 2008-02-17 17:45 cacd40ea-ac88-4143-b5d9-5cb477eeb85d -> ../../hda4
lrwxrwxrwx 1 root root 10 2008-02-17 17:45 d4404ea9-0a8e-4a4c-b72d-10a5edd697be -> ../../hda5
вот нам нужны как раз цифры «11815c66-5ae7-4497-9039-51de9adef664», к примеру. Это UUID партиции swap (в моем случае).
в menu.lst правим следующие строки:
# kopt=root=UUID=d4404ea9-0a8e-4a4c-b72d-10a5edd697be ro
(не смотрите что строка закомментирована, при обновлении ядра именно отсюда берется информация)
kernel /vmlinuz-2.6.22-14-generic root=UUID=d4404ea9-0a8e-4a4c-b72d-10a5edd697be ro quiet splash locale
kernel /vmlinuz-2.6.22-14-generic root=UUID=d4404ea9-0a8e-4a4c-b72d-10a5edd697be ro single
Не забудьте тот факт, что хоть система и скопирована на диск, но она пока не умеет загружаться, потому что мы не установили загрузчик.
Делается это просто:
Берем установочный диск UBUNTU и грузимся.
переходим в консоль ctrl+f1
sudo su
grub
find /grub/stage1
root (hd0,0) сюда пишем то что выдала предыдущая команда
setup (hd0) сюда пишем то же самое но до первой запятой.
quit
Все — отсединяем диск от системы, подключаем, проверяем. У меня все заработало.
Так как я не переносил /home — то система ругнулась на то что я как пользователь есть а вот домашней папки у меня нет. Я поступил варварским способом — userdel %username% , а затем adduser %username% .
Просто мне было НЕВАЖНО. И лень расставлять аттрибуты. А таким образом система сделала все за меня.
Источник