LinuxForum.Fans
Тема

Копирование ситемы

Автор: medusa 29 сообщений 1591 просмотров
13.02.2021 00:33 #435999

Дорогие профи. прошу вашей помощи, потму, что попал в какой-то капкан. проблема в следующем - я решил скопировать систему на новый винчестер. Новый диск я подсоединил так, что он стал sda, а диск с системой sdb. Копирование прошло в общем нормально. В конце копирования было необходимо установить загрузчик. Я выполнил
[console]
sudo mount /dev/sdи2 /mnt
sudo grub-install --root-directory=/mnt /dev/sda
[/console]

Перезагрузился. Все сначала открылось как будто хорошо

Показать


Беда в том, что как только я отсоединяю любой винт, то при загрузке сразу получаю ошибку


error: symbol 'grub_file_filters_all' not found
Entering rescue mode

Помогите пожалуйста разежденить диски. Я не могу это сделать. Очень прошу помощи. спасибо.

13.02.2021 08:20 #436000

medusa, ну так пропишите в самом загрузчике какие именно диски ему надо грузить и в каком порядке :)

13.02.2021 09:23 #436001

Судя по скриншоту, UEFI у Вас нет, иначе бы на скриншоте не было memtest.

"medusa" написал:
sudo mount /dev/sdи2 /mnt

Это что за опечатка? Надеюсь, Вы в консоли так не набрали. Похоже, что набирали «sdb». Какой смысл, если у Вас новый диск sda? И почему второй раздел? Что у Вас на первом?
Я тоже такое делал, делюсь своим проверенным алгоритмом.
1. Делаю LiveUSB Ubuntu/Mint (в последнее время предпочитаю именно Mint).
2. Подключаю оба диска. Да, здесь Вы правы, лучше новый подключить первым, но на самом деле некритично − как минимум лет 5 уже, а скорее намного больше, монтирование производится не по имени раздела (/dev/sda1), а по UUID (например, 27568d03-a508-4cd5-a8ea-354857648971 − вытянул пример из своей системы).
3. Копирую при помощи GPartEd разделы на новый диск. Если нужно изменить размер раздела, это надо делать сразу после его копирования, а не после завершения всех операций − не будет неиспользованного места на диске. Кстати, хорошая рекомендация − чтобы не сидеть за компьютером всё время, наблюдая за копированием, отключите энергосбережение, так как по умолчанию диск отключается примерно через 20 минут :) .
4. Когда копирование разделов завершится, выключаете компьютер и физически отключаете старый диск.
5. Загружаетесь ещё раз с флешки и монтиируете раздел с загрузчиком и устанавливаете GRUB. В принципе, у вас обе команды написаны верно, только не «sdb», а «sda» − у Вас диск с системой будет единственным. И уточните для себя номер раздела с системой, точно второй?

И ещё такой момент. При копировании разделов при помощи GPartEd у вас будет одинаковый UUID на двух разделах − оригинале и копии. И при одновременном подключении двух дисков система может не понять, куда писать, сталкивался с этим. Поэтому рекомендую после того, как убедитесь, что всё загружается с нового диска, отключить его, подключить старый, ещё раз загрузиться с флешки и принудительно сменить UUID для всех разделов. Примерно так:

Показать

Если этот пункт недоступен, в контекстном меню есть пункт «Отмонитровать», выполняете его, затем меняете UUID. Если планируете этот диск использовать для загрузки старой копии системы, тогда дополнительно на системном разделе открываете файлы /etc/fstab и правите UUID там, меняя на новые. Если нет, тогда по желанию.

13.02.2021 10:10 · отредактировано #436002
"Rizado" написал:
И ещё такой момент. При копировании разделов при помощи GPartEd у вас будет одинаковый UUID на двух разделах

Вы знаете, скорее всего так оно и есть, потому что после каждой перезагрузки монтируются разные диски. вот два вывода с разностью 2 минуты, т.е. загрузка через минуту перезагрузка

[console]
[ medusa@oleg-PC-O-E-M ~ ]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 132K 1 loop /snap/gtk2-common-themes/9
loop1 7:1 0 62,1M 1 loop /snap/gtk-common-themes/1506
loop2 7:2 0 276K 1 loop /snap/gnome-characters/570
loop3 7:3 0 98,4M 1 loop /snap/core/10823
loop4 7:4 0 55,5M 1 loop /snap/core18/1988
loop5 7:5 0 21,3M 1 loop /snap/communitheme/1987
loop6 7:6 0 161,4M 1 loop /snap/gnome-3-28-1804/128
loop7 7:7 0 219M 1 loop /snap/gnome-3-34-1804/66
loop8 7:8 0 16M 1 loop /snap/communitheme/1768
loop9 7:9 0 64,8M 1 loop /snap/gtk-common-themes/1514
loop10 7:10 0 217,9M 1 loop /snap/gnome-3-34-1804/60
loop11 7:11 0 276K 1 loop /snap/gnome-characters/550
loop12 7:12 0 956K 1 loop /snap/gnome-logs/100
loop13 7:13 0 162,9M 1 loop /snap/gnome-3-28-1804/145
loop14 7:14 0 55,4M 1 loop /snap/core18/1944
loop15 7:15 0 140K 1 loop /snap/gtk2-common-themes/13
loop16 7:16 0 97,9M 1 loop /snap/core/10583
loop17 7:17 0 956K 1 loop /snap/gnome-logs/93
sda 8:0 0 931,5G 0 disk
├─sda1 8:1 0 11,2G 0 part [SWAP]
├─sda2 8:2 0 79,1G 0 part /
├─sda3 8:3 0 136,9G 0 part /home
├─sda4 8:4 0 512B 0 part
├─sda5 8:5 0 352,2G 0 part
└─sda6 8:6 0 352,2G 0 part
sdb 8:16 0 931,5G 0 disk
├─sdb1 8:17 0 11,2G 0 part
├─sdb2 8:18 0 79,1G 0 part
├─sdb3 8:19 0 136,9G 0 part
├─sdb4 8:20 0 1K 0 part
├─sdb5 8:21 0 353,7G 0 part
└─sdb6 8:22 0 350,6G 0 part
sr0 11:0 1 1024M 0 rom
0 ✓ 06:01:33 Сб фев 13
[/console]
Перезагружаюсь
[console]NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 217,9M 1 loop /snap/gnome-3-34-1804/60
loop1 7:1 0 276K 1 loop /snap/gnome-characters/550
loop2 7:2 0 162,9M 1 loop /snap/gnome-3-28-1804/145
loop3 7:3 0 16M 1 loop /snap/communitheme/1768
loop4 7:4 0 55,5M 1 loop /snap/core18/1988
loop5 7:5 0 276K 1 loop /snap/gnome-characters/570
loop6 7:6 0 219M 1 loop /snap/gnome-3-34-1804/66
loop7 7:7 0 132K 1 loop /snap/gtk2-common-themes/9
loop8 7:8 0 140K 1 loop /snap/gtk2-common-themes/13
loop9 7:9 0 64,8M 1 loop /snap/gtk-common-themes/1514
loop10 7:10 0 55,4M 1 loop /snap/core18/1944
loop11 7:11 0 98,4M 1 loop /snap/core/10823
loop12 7:12 0 161,4M 1 loop /snap/gnome-3-28-1804/128
loop14 7:14 0 21,3M 1 loop /snap/communitheme/1987
loop15 7:15 0 62,1M 1 loop /snap/gtk-common-themes/1506
loop16 7:16 0 956K 1 loop /snap/gnome-logs/100
loop17 7:17 0 97,9M 1 loop /snap/core/10583
loop18 7:18 0 548K 1 loop /snap/gnome-logs/103
sda 8:0 0 931,5G 0 disk
├─sda1 8:1 0 11,2G 0 part
├─sda2 8:2 0 79,1G 0 part
├─sda3 8:3 0 136,9G 0 part
├─sda4 8:4 0 1K 0 part
├─sda5 8:5 0 352,2G 0 part
└─sda6 8:6 0 352,2G 0 part
sdb 8:16 0 931,5G 0 disk
├─sdb1 8:17 0 11,2G 0 part [SWAP]
├─sdb2 8:18 0 79,1G 0 part /
├─sdb3 8:19 0 136,9G 0 part /home
├─sdb4 8:20 0 512B 0 part
├─sdb5 8:21 0 353,7G 0 part
└─sdb6 8:22 0 350,6G 0 part
sr0 11:0 1 1024M 0 rom
0 ✓ 06:12:04 Сб фев 13
[/console]
А бывает и так, что в разнобой, те. корень с sda, а все остальное sdb. Тут проблема в том, что после копирования система без двух одновременно подключенных дисков не запускается((( Если отключаю диск любой не важно загрузки нет и пишет, что

error: symbol 'grub_file_filters_all' not found
Entering rescue mode...
grub rescue>

И я ничего не могу сделать. я думал отключу новый hdd и запущусь со старого - ничего не выходит. И я на понимаю. что сделать. Может переустановить GRUB2 на старом диске, но честно говоря просто без достаточной информации боюсь. Тут у меня обратиться не к кому и если что-то пойдет не так, то все. Вот и выходит. что загнал себя в капкан, а как выйти - не знаю((( Буду очень признателен за помощь. Я ведь хотел не просто перенести систему, а попробовать обновиться до новой версии на новом диске. если не пойдет, то и ничего - второй то есть. А теперь ни старого, ни нового. Но разобраться надо. Я было подумал просто отсоединить новый диск, старый поставить на место и с помощью мануала https://losst.ru/vosstanovlenie-grub2 попробовать исправить ситуацию. Потому, что ни какой из hdd не грузится.((( Спасибо.

13.02.2021 10:19 #436003
"medusa" написал:
скорее всего так оно и есть

Не «скорее всего», а точно. Тоже в своё время эту ошибку допустил, откуда и знаю :) .

"medusa" написал:
Может переустановить GRUB2 на старом диске, но честно говоря просто без достаточной информации боюсь.

Хуже не сделаете.
Имеете загрузочную флешку? Отключаете новый диск, оставляете только старый. Он будет /dev/sda.
Загружаетесь с флешки, монтируете системный раздел и устанавливаете загрузчик. Команды выше есть, Вы написали правильно, только смотрите на имя диска и номер раздела. Учтите, что флешка будет sdb.

P.S. Я вообще планирую ваш город посетить по своим делам, но ориентировочно во второй половине марта либо, что вероятнее, в начале апреля − как раз отпуск на работе будет.

13.02.2021 10:21 #436004
"medusa" написал:
sudo mount /dev/sdb2 /mnt
sudo grub-install --root-directory=/mnt /dev/sda

Понимаете. я их переподключил так, что старый диск стал sdb , а новаый sda. Грузился с флешки. сначала все отмонтировал. чтобы не было проблем. И проблемы меня тут-же нашли, ну или я их.((

13.02.2021 10:22 #436005

medusa, если Вы подключите один диск и загрузитесь с флешки, диск будет sda, а флешка − sdb.

13.02.2021 10:26 #436006
"Rizado" написал:
Я вообще планирую ваш город посетить по своим делам, но ориентировочно во второй половине марта либо, что вероятнее, в начале апреля − как раз отпуск на работе будет.

Ну что же буду рад увидеться. Может и я Вам чем-то пригожусь)))
Добавлено: 13.02.2021 10:26:45

"Rizado" написал:
если Вы подключите один диск и загрузитесь с флешки, диск будет sda, а флешка − sdb.

Я только вот о чем думаю - при восстановлении загрузчика используется команда

[console]sudo grub2-install /dev/sd*[/console]

Меня несколько смутила точка в том смясле речь идет о всем sda или о sda2 (место где находится корень)? Спасибо.

13.02.2021 10:29 #436007
"medusa" написал:
Я только вот о чем думаю - при восстановлении загрузчика используется команда

[console]sudo grub-install --root-directory-/your/path /dev/sda[/console]
/your/path − папка, куда смонтирован системный раздел.
У вас звёздочка заменяет букву, которую нужно выбрать − sda, sdb, … Загрузчик обычно ставится на весь диск, а не на раздел.

13.02.2021 10:51 #436008
"Rizado" написал:
b
"Rizado" написал:
Загрузчик обычно ставится на весь диск, а не на раздел.

Тогда давайте я напишу алгоритм, а Вы сели можно, поправьте меня.
1. Отключаю питание.
2. Ставлю старый HDD на место (при загрузке он будет SDA)
3. Вставляю флешку и загружаюсь с нее.
4. Определяю местонахождение Системы /
[console] sudo fdisk -l[/console]
5. Монтирую корень
[console]mount /dev/sda2 /mnt[/console]
6. Вхожу в систему
[console]
sudo mount --bind /dev /mnt/dev
sudo mount --bind /sys /mnt/sys
sudo mount --bind /proc /mnt/proc
[/console]
7. Вхожу в окружение
[console]
chroot /mnt /bin/bash
env-update
source /etc/profile
[/console]
8. Восстанавливаю GRUB
[console]
sudo grub2-install /dev/sda
[/console]
так написано в руководстве, а так говорите Вы
[console]
sudo grub-install --root-directory-/dev/sda2 /dev/sda
[/console]
или я чего-то опять не понимаю?
9. Создаем новый конфиг
[console]
sudo grub2-mkconfig -o /boot/grub/grub.cfg
[/console]
10. Обновляем загрузчик
[console]sudo grub-update[/console]
11. Выходим из окружения
[console]exit
[/console]
12. Перезагружаемся
Исправьте меня, если я что-то напутал.

13.02.2021 11:06 #436009

Неправильно. [console=inline]chroot[/console] не нужно вообще. Зачем лишние сложности?
Что у Вас на /dev/sda1, что у вас система на /dev/sda2? Редко такое встречаю. У меня тоже 2, но у меня на первом UEFI.
По шагам:
С 1 по 5 всё верно, только обратите внимание на номер раздела.
6. [console=inline]sudo grub-install --root-directory=/mnt /dev/sda[/console] − вот так, я не писал, чтобы root-directory было /dev/sda2, наоборот, в первом ответе есть:

"Rizado" написал:
В принципе, у вас обе команды написаны верно, только не «sdb», а «sda» − у Вас диск с системой будет единственным.
13.02.2021 11:12 #436010
"Rizado" написал:
Что у Вас на /dev/sda1, что у вас система на /dev/sda2?

Я при установке в начало диска поставил SWAP, ну он теперь и определяется, как sda1

13.02.2021 11:15 #436011
"medusa" написал:
Я при установке в начало диска поставил SWAP, ну он теперь и определяется, как sda1

Тогда понятно. Я вообще без него обхожусь − SSD жаль добивать, да и 32 ГБ памяти хватает для моих задач.

13.02.2021 11:19 #436012

Тогда получается так:
1. Отключаю питание.
2. Ставлю старый HDD на место (при загрузке он будет SDA)
3. Вставляю флешку и загружаюсь с нее.
4. Определяю местонахождение Системы /

[console]sudo fdisk -l[/console]

5. Монтирую корень

[console]mount /dev/sda2 /mnt[/console]

6. Вхожу в систему


[console]sudo mount --bind /dev /mnt/dev
sudo mount --bind /sys /mnt/sys
sudo mount --bind /proc /mnt/proc[/console]

7. Восстанавливаю GRUB

[console]sudo grub-install --root-directory=/mnt /dev/sda[/console]
8. Создаем новый конфиг


[console]sudo grub2-mkconfig -o /boot/grub/grub.cfg[/console]

9. Обновляем загрузчик

[console]sudo grub-update[/console]

10. Выходим из окружения

[console]exit[/console]

11. Перезагружаемся
Исправьте меня, если я что-то опять напутал.

13.02.2021 11:25 #436013

Читайте, что я написал. Шаги 6 и 8-10 не нужны. Делайте без них.

13.02.2021 11:31 · отредактировано #436014
"Rizado" написал:
Читайте, что я написал. Шаги 6 и 8-10 не нужны. Делайте без них.

Хорошо. Сейчас прямо и начну. Очень надеюсь, что все получится. Только, извините мою глупость, а откуда будет тогда копироваться сам GRUB? Спасибо.

13.02.2021 11:43 #436015
"medusa" написал:
Только, извините мою глупость, а откуда будет тогда копироваться сам GRUB?

Он же есть на флешке, откуда Вы загрузились :) .

13.02.2021 11:46 #436016
Rizado написал:
[quote="medusa"]Только, извините мою глупость, а откуда будет тогда копироваться сам GRUB?

Он же есть на флешке, откуда Вы загрузились :) .[/quote]

Тогда получается так:
1. Отключаю питание.
2. Ставлю старый HDD на место (при загрузке он будет SDA)
3. Вставляю флешку и загружаюсь с нее.
4. Определяю местонахождение Системы /

[console]sudo fdisk -l[/console]

5. Монтирую корень

[console]mount /dev/sda2 /mnt[/console]

6. Восстанавливаю GRUB

[console]sudo grub-install --root-directory=/mnt /dev/sda[/console]

Проверьте пожалуйста - все я правильно понял? Особенно пункт 5 и 6.

13.02.2021 11:55 #436017

Всё верно.

13.02.2021 12:42 #436018
"Rizado" написал:
Всё верно.

Тогда начинаю *DONT_KNOW*
Добавлено: 13.02.2021 12:42:44

Я переустановил загрузчик и система загрузилась. Теперь проблема в том, что исчезло загрузочное меню, т. е. я не могу совенршенно ничего выбрать или протестировать. Есть ли возхможность вернуть загрузочное меню? Спасибо.

Войдите или зарегистрируйтесь, чтобы ответить.