LINUX.ORG.RU

Перенос системы


0

0

Всем привет!

Мне нужно перенести ASP11 с hda на sda.

Прочитал FAQ, и сделал вот так:
1. telinit 1
2. cp -a / /mnt/sda1
3. в файлах lilo.conf и fstab исправил все hda на sda
4. lilo -c /mnt/sda1/etc/lilo.conf
5. перезагружаю систему, в биосе ставлю загрузку с sda

Но при загрузке я вижу не lilo, а кучу 99 99 99 ...

Что я сделал не так?

Ответ на: комментарий от shuthdar

> Попробуй оставить загрузку с hda и пропиши лило с "правильным" меню туда

то-есть занести /mnt/sda1/etc/lilo.conf в hda?

SlavikSS ★★
() автор топика
Ответ на: комментарий от sin_a

> Скорее всего, нужно пересобрать initrd с поддержкой SATA.

я вчера переносил систему с помощью dd и загрузчик работал!
но вариант с dd мне не подходит, поскольку нужно перенести систему с винта 250 ГБ на винт 160ГБ.

SlavikSS ★★
() автор топика
Ответ на: комментарий от anonymous

> Заменить на chroot /mnt/sda1 /bin/bash , lilo

забыл сказать, я делал ещё так
lilo -c /mnt/sda1/etc/lilo.conf
dd if=/dev/hda if=/dev/sda bs=512 count=1

Или через chroot другой эффект?

SlavikSS ★★
() автор топика
Ответ на: комментарий от SlavikSS

Указывает, что записать следует в MBR (master boot record). В принципе, достаточно вместо него просто указать не /dev/hda1 а /dev/hda.

shuthdar ★★★
()
Ответ на: комментарий от anonymous

> 4. lilo -c /mnt/sda1/etc/lilo.conf

> Заменить на

> chroot /mnt/sda1 /bin/bash lilo

+1

Может быть стоит загрузится с LiveCD и поставить lilo в chroot

sin_a ★★★★★
()
Ответ на: комментарий от SlavikSS

Если ext2/3 переноси систему dump/restore

# mount /dev/sda1 /mnt/sda1
# cd /mnt/sda1
# dump -u0 -f - /dev/hda1 | restore -r -f -

# повторить для всех переносимых разделов.

sdio ★★★★★
()

Ну вот, например:

r00t@root:~$ cat /etc/lilo.conf
boot = /dev/sda
prompt
timeout = 300
vga = normal

image = /boot/bzImage
root = /dev/sda3
label = Linux
read-only

строка boot говорит Лиле ;-) записаться в MBR диска
а строка root - где находится рутовый раздел.
Соответственно, при переезде на hda->sda (например, при апгрейде ядра 2.4.x (SATA в ATA подсистеме) -> 2.6.x (SATA в SCSI); при физической смене носителя и т. д.) ты должен сделать вот что:
загрузившись с hda прописать:

boot = /dev/hda (!!!)
prompt
timeout = 300
vga = normal

image = /boot/bzImage
root = /dev/sda3 (!!! ну или какой там у тебя загрузочный раздел должен быть после смены)
label = Linux
read-only

и делаем /sbin/lilo
Получится, что Лила пропишет на MBR винта hda загрузчик, в котором будет сказано, что рутовый раздел на sda3. После этого переводим винт в SATA (или что ты там делаешь? копируешь через dd или еще что), загружаемся уже с sda3, снова меняем boot строчку на "boot = /dev/sda" и вызываем лило. После этого можно опционально перезагрузиться, чтобы убедиться что все ОК.

R00T
()
Ответ на: комментарий от R00T

Ну и, конечно, не забудь аналогичные действия произвести с /etc/fstab

R00T
()
Ответ на: комментарий от sdio

2 ламерских вопроса:

1. это можно делать в режиме init 1 (single user) или обязательно с liveCD?
2. чем этот метод лучше cp -a / /mnt/sda1 ?

SlavikSS ★★
() автор топика
Ответ на: комментарий от SlavikSS

> чем этот метод лучше cp -a / /mnt/sda1 ?

dd скопирует устройство целиком. А CP - только файлы.
Далее: бессмысленно копировать /proc и /sys ;-)

То есть, если ты делаешь через копирование, то:
1. Разбиваешь целевой винт как тебе надо (например, /dev/sda1 своп, /dev/sda2 - рут)
2. mkswap /dev/sda1 ; mkreiserfs /dev/sda2 ; mount /dev/sda2 /mnt/sda2
3. копируешь из / в /mnt/sda2 все кроме /proc и /sys
4. mkdir /mnt/sda2/proc ; mkdir /mnt/sda2/sys
5. Загружаешься с какого-нибудь установочного или LivCD диска, указывая загрузчику нечто типа:
bzImage root=/dev/sda2 ro
6. Логинишься и прописываешь загрузчик как тебе нравится.

R00T
()
Ответ на: комментарий от R00T

Упс.
3a. Редактируешь /mnt/sda2/etc/fstab, чтобы оно удовлетворяло новой системе.

R00T
()
Ответ на: комментарий от R00T

> Получится, что Лила пропишет на MBR винта hda загрузчик, в котором будет сказано, что рутовый раздел на sda3. После этого переводим винт в SATA (или что ты там делаешь? копируешь через dd или еще что), загружаемся уже с sda3, снова меняем boot строчку на "boot = /dev/sda" и вызываем лило.

Вот это я ниасилил, если возможно, обьясни мне пожалуйста поподробнее.

SlavikSS ★★
() автор топика
Ответ на: комментарий от R00T

dd скопирует устройство целиком. А CP - только файлы. А чего без файлов не загрузится ? Если сделаешь dd то у тебя останется та файловая система + размер диска такой же ( а ведь он больше не так ли ? ) Так что хватит простого копирования. /proc и /sys копировать не надо если udev.

сделай после:

mount -o bind /dev/ /mnt/sda1/dev

mount -o bind /proc/ /mnt/sda1/proc

chroot /mnt/sda1

далее ту комманду лило которая инсталит загрузчик и все. А вообще поставтиь груб там можно указать прям при загрузке с какого раздела загружать - тогда не надо делать chroot достаточно загрузится в новую систему и все ....

SI ★★☆☆
()
Ответ на: комментарий от SI

>далее ту комманду лило которая инсталит загрузчик и все. А

Соотв, поправив lilo.conf с учетом sda. По идее все должно получится ...

SI ★★☆☆
()
Ответ на: комментарий от SlavikSS

>1. это можно делать в режиме init 1 (single user) или обязательно с liveCD?

Можно в single mode

>2. чем этот метод лучше cp -a / /mnt/sda1 ?

Тем что, получишь правильную копию раздела, независимо от (не совпадающих) размеров разделов и наличия вирт. фс (/proc, /sys, /dev)

sdio ★★★★★
()

Я бы посоветовал установить Grub, по идее сейчас не слишком популярен Lilo

anonymous
()
Ответ на: комментарий от sdio

У него есть 2 варианта...
1. dd if=/dev/hdaX of=/dev/sdaX. Тогда действуем по 1-й мною описанной схеме.
2. cp. Тогда - по 2-й схеме.

Что непонятно?

R00T
()
Ответ на: комментарий от sdio

> вирт. фс (/proc, /sys, /dev)

Совсем не факт, что /dev у него вирт. фс. Весьма вероятно, но не факт.

R00T
()
Ответ на: комментарий от R00T

Это с тобой что-то не понятно.
Он спрашивал меня по-поводу dump/restore, а ты ему ответил о dd.

sdio ★★★★★
()

>Но при загрузке я вижу не lilo, а кучу 99 99 99 ...

Вот из за этих фишечек lilo я некогда и перешёл на grub. :)

qwe ★★★
()
Ответ на: комментарий от anonymous

Всем огромное спасибо! Мне это удалось! :)

Делал так:
1. telinit 1
2. mount -t ext3 /dev/sda1 /mnt/sda1
3. cp -ax / /mnt/sda1
4. mount --bind /dev /mnt/sda1/dev
5. mount --bind /proc /mnt/sda1/proc
6. chroot /mnt/sda1
7. отредактировал lilo.conf, fstab
8. lilo
9. остальные разделы копировал cp -ax ...

Есть ещё такие вопросы:
1. Почему когда я загрузился с hda, я не могу использовать lilo -C /mnt/sda1/etc/lilo.conf? В файле /mnt/sda1/etc/lilo.conf все параметры указывают на sda!
2. Как переносить загрузчик с одного винта на другой с пощью dd? Я запускал dd if=/dev/hda of=/dev/sda bs=512 count=1, загрузчик перенёсся, но испортилась extended партиция на sda (она стала такая же как и на hda)

Для sdio:
Твой вариант копирования с помощью dump/restore у меня не работает, выдаёт ошибку!

Для R00T:
Твой вариант я так и не понял. :(

SlavikSS ★★
() автор топика
Ответ на: комментарий от SlavikSS

>Твой вариант копирования с помощью dump/restore у меня не работает, выдаёт ошибку!

Мог бы ошибку показать.

sdio ★★★★★
()
Ответ на: комментарий от sdio

Ой, извини, я ошибся при наборе параметров. Всё работает!

Спасибо!

SlavikSS ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.