Сбой загрузки Grub / boot

Вопрос или проблема

Прежде всего, я не слишком опытен здесь 🙂

У меня есть проблема: мой диск Ubuntu (так как я вручную переключаюсь между двумя дисками) сломался, и я пытаюсь это исправить, но пока безуспешно. Я считаю, что моя загрузочная секция повреждена, так как после автоматического исправления диска (при запуске) почти все директории становятся #, поэтому у меня нет директорий, таких как /grub или /boot, или даже /bin /usr и т.д.

например:

root@ubuntu:/mnt/lost+found# find . -name *init*
./#1569794/cache/apparmor/72e9179b.0/trinity
./#1569794/cache/apparmor/baad73a1.0/trinity
./#1569794/lib/dpkg/info/initramfs-tools.conffiles
./#1569794/lib/dpkg/info/gnome-initial-setup.conffiles
./#1569794/lib/dpkg/info/xinit.conffiles
./#1569794/lib/dpkg/info/init.md5sums
./#1569794/lib/dpkg/info/sysvinit-utils.md5sums
./#1569794/lib/dpkg/info/initramfs-tools-core.conffiles
./#1569794/lib/dpkg/info/initramfs-tools-core.md5sums
./#1569794/lib/dpkg/info/initramfs-tools-core.postinst
./#1569794/lib/dpkg/info/initramfs-tools-core.postrm
./#1569794/lib/dpkg/info/initramfs-tools-bin.md5sums
./#1569794/lib/dpkg/info/busybox-initramfs.md5sums
./#1569794/lib/dpkg/info/gnome-initial-setup.md5sums
./#1569794/lib/dpkg/info/gnome-initial-setup.postinst
./#1569794/lib/dpkg/info/gnome-initial-setup.postrm
./#1569794/lib/dpkg/info/gnome-initial-setup.preinst
./#1569794/lib/dpkg/info/xinit.md5sums
./#1569794/lib/dpkg/info/xinit.postinst
./#1569794/lib/dpkg/info/kinit.postrm
./#1569794/lib/dpkg/info/gnome-initial-setup.prerm
./#1569794/lib/dpkg/info/initramfs-tools.md5sums
./#1569794/lib/dpkg/info/initramfs-tools.postinst
./#1569794/lib/dpkg/info/initramfs-tools.postrm
./#1569794/lib/dpkg/info/initramfs-tools.preinst
./#1569794/lib/dpkg/info/initramfs-tools.prerm
./#1569794/lib/dpkg/info/initramfs-tools.triggers
./#1569794/lib/dpkg/info/init-system-helpers.md5sums
./#1569794/lib/dpkg/info/busybox-initramfs.triggers
./#1569794/lib/dpkg/info/kinit.list
./#1569794/lib/dpkg/info/init.list
./#1569794/lib/dpkg/info/sysvinit-utils.list
./#1569794/lib/dpkg/info/gnome-initial-setup.list
./#1569794/lib/dpkg/info/busybox-initramfs.list
./#1569794/lib/dpkg/info/initramfs-tools.list
./#1569794/lib/dpkg/info/initramfs-tools-core.list
./#1569794/lib/dpkg/info/initramfs-tools-bin.list
./#1569794/lib/dpkg/info/xinit.list
./#1569794/lib/dpkg/info/init-system-helpers.list
./#1569794/lib/dpkg/info/initscripts.list
./#1569794/lib/dpkg/info/initscripts.postrm
./#1569794/lib/dpkg/triggers/update-initramfs
./#1569794/lib/systemd/deb-systemd-helper-enabled/sysinit.target.wants
./#1569794/lib/systemd/deb-systemd-helper-enabled/rescue.target.wants/grub-initrd-fallback.service
./#1569794/lib/systemd/deb-systemd-helper-enabled/multi-user.target.wants/grub-initrd-fallback.service
./#1569794/lib/systemd/deb-systemd-helper-enabled/grub-initrd-fallback.service.dsh-also
./#1569794/lib/systemd/deb-systemd-helper-enabled/emergency.target.wants/grub-initrd-fallback.service
./#1569794/lib/systemd/deb-systemd-helper-enabled/sleep.target.wants/grub-initrd-fallback.service
./#1569794/lib/polkit-1/localauthority/10-vendor.d/gnome-initial-setup.pkla
./#1569794/lib/swcatalog/icons/ubuntu-noble-universe/64x64/minitube_minitube.png
./#1569794/lib/swcatalog/icons/ubuntu-noble-universe/48x48/minitube_minitube.png
./#1569794/log/installer/initial-status.gz
./#1308161/apparmor/init
./#1308161/X11/xinit
./#1308161/X11/xinit/xinitrc
./#1308161/initramfs-tools
./#1308161/initramfs-tools/update-initramfs.conf
./#1308161/initramfs-tools/scripts/init-bottom
./#1308161/initramfs-tools/scripts/init-premount
./#1308161/initramfs-tools/scripts/init-top
./#1308161/initramfs-tools/initramfs.conf
./#1308161/init
./#1308161/init/rc-sysinit.conf
./#1308161/init.d
./#1308161/gdb/gdbinit
./#1308161/gdb/gdbinit.d
./#1308161/systemd/system/sysinit.target.wants
./#1308161/systemd/system/rescue.target.wants/grub-initrd-fallback.service
./#1308161/systemd/system/multi-user.target.wants/grub-initrd-fallback.service
./#1308161/systemd/system/emergency.target.wants/grub-initrd-fallback.service
./#1308161/systemd/system/sleep.target.wants/grub-initrd-fallback.service
./#1308161/xdg/autostart/gnome-initial-setup-copy-worker.desktop
./#1308161/xdg/autostart/gnome-initial-setup-first-login.desktop
./#1308161/apparmor.d/trinity
./#1308161/kernel/postinst.d/initramfs-tools
./#1308161/kernel/postinst.d/xx-update-initrd-links
./#1308161/kernel/postrm.d/initramfs-tools
./#2093057/initrd.img-6.8.0-49-generic
./#2093057/initrd.img.old
./#2093057/initrd.img-6.8.0-51-generic
./#2093057/initrd.img-6.8.0-47-generic
./#2093057/initrd.img
./#2093057/initrd.img-5.15.0-122-generic

Так что короткий вопрос, возможно ли это исправить??

или лучше как-то переустановить – возможно, новую ОС, но хочется сохранить данные? Также я не уверен, но нужно лучше сделать разделение…

Постараюсь предоставить здесь все детали, которые у меня есть, и что я делал, и как это выглядит. Потому что я также пытался пойти более “легким” путем и использовать boot-repair, но теперь я тоже застрял с ним.

Мои разделы теперь выглядят так:

Disk model: WDC WDS100T2G0A-
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xcb778a8a

Device     Boot    Start       End   Sectors   Size Id Type
/dev/sda1  *        2048  80001023  79998976  38.1G 83 Linux
/dev/sda2       80003070 977876991 897873922 428.1G  5 Extended
/dev/sda5       80003072 918863871 838860800   400G 83 Linux

когда я использую boot-repair, получаю такое сообщение:

Please enable a repository containing the [grub] packages in the software sources of unknown Linux distribution (/dev/sda1). Then try again.

Он дает такую информацию на pastebin:
https://paste.ubuntu.com/p/3DgG9P6v6c/

Я пытался воссоздать недостающие файлы для каждой перезагрузки (+ несколько попыток переустановить grub и т.д.) /dev/sda1 теперь выглядит так:

ubuntu@ubuntu:/mnt$ ll
total 320
drwxr-xr-x  23 root root   4096 Feb 10 08:26 ./
drwxr-xr-x   1 root root    260 Feb  9 20:19 ../
drwxr-xr-x   2 root root  61440 Feb  7 19:57 bin/
drwxr-xr-x   3 root root   4096 Feb  7 15:21 boot/
drwxr-xr-x   4 root root   4096 Feb  9 20:58 boot-sav/
drwxr-xr-x  20 root root   4940 Feb  9 20:19 dev/
drwxr-xr-x   3 root root   4096 Feb  9 20:33 etc/
drwxr-xr-x   2 root root   4096 Sep 20 10:16 games/
drwxr-xr-x  56 root root  16384 Sep 20 11:06 include/
drwxr-xr-x 128 root root  12288 Dec 27 11:28 lib/
drwxr-xr-x   3 root root   4096 Oct 18 21:51 lib32/
drwxr-xr-x   2 root root   4096 Sep 20 10:01 lib64/
drwxr-xr-x  28 root root  12288 Dec 27 11:27 libexec/
drwxr-xr-x   2 root root   4096 Sep  8  2022 libx32/
drwxr-xr-x  10 root root   4096 Jul 19  2016 local/
drwx------  23 root root 135168 Jan 27 13:00 lost+found/
dr-xr-xr-x 400 root root      0 Feb  9 20:19 proc/
drwxr-xr-x   2 root root   4096 Feb  7 20:25 run/
drwxr-xr-x   2 root root  20480 Dec 27 11:28 sbin/
drwxr-xr-x 346 root root  12288 Nov 25 13:01 share/
drwxr-xr-x  11 root root   4096 Dec 27 11:28 src/
dr-xr-xr-x  13 root root      0 Feb  9 20:19 sys/
drwxr-xr-x   5 root root   4096 Feb  9 20:16 temp_work/

хотел переустановить ядро через boot-repair, но не могу пройти через это из-за вышеупомянутого сообщения boot-repair. Я пытался установить grub с помощью chroot на смонтированном /dev/sda1

ubuntu@ubuntu:~$ sudo chroot /mnt
bash-5.2# grub-install /dev/sda
grub-install: error: /usr/lib/grub/i386-pc/modinfo.sh doesn't exist. Please specify --target or --directory.
bash-5.2# apt install grub-efi
E: Unable to determine a suitable packaging system type

теперь после перезагрузки я все еще получаю: kernel panic – not syncing: Attempted to kill init

если диск, на котором установлена ваша Linux, не содержит данных, которые вы хотите сохранить, почти наверняка проще заново начать с нуля.

если диск содержит данные, которые вы хотите СОХРАНИТЬ, тогда ваш самый легкий путь – получить третий диск (жесткие диски сейчас очень дешевые) и установить на него Linux с нуля, а после того, как он будет запущен, использовать новую установку Linux для извлечения данных, которые вы хотите сохранить, с вашего поврежденного диска.

совет: отключите безопасную загрузку в настройках BIOS – выключение ее сделает замену и изменение дисков гораздо менее болезненной.

Ответ или решение

Вопрос о восстановлении системы после краха загрузчика GRUB на двухдисковой установке Ubuntu требует комплексного подхода. Давайте подробно разберем теоретические аспекты, конкретные примеры и пошагово применим эти знания для решения проблемы.

Теория

GRUB (GRand Unified Bootloader) — это стандартизированный загрузчик, который используется во многих дистрибутивах Linux для управления многозагрузочной средой. Крах GRUB может случиться вследствие различных причин, таких как повреждение системных файлов, ошибочная конфигурация системных разделов и секторов, или физические повреждения диска. Когда GRUB ломается, система не может правильно загрузиться, что делает важным восстановление его функциональности.

Ваша ситуация усложняется тем, что повреждены не только системные каталоги, но и сама структура разделов, что говорит о возможной проблеме на уровне файловой системы. Переименование директорий в потерянные файлы с меткой (#) свидетельствует о потенциальных повреждениях суперблока или других критических элементов файловой системы, что требует тщательного анализа.

Пример

Вы описали, что автоисправление диска при старте системы привело к превращению почти всех директорий в потерянные файлы (они отмечены как #). Это может указывать на серьёзные нарушения в структуре файловой системы — например, в результате внезапного отключения питания или неполадок винчестера. Ваши попытки использования boot-repair для восстановления пока что оказались безуспешными, а попытка установки GRUB через chroot тоже не помогла.

Применение

Первым шагом в решении данной проблемы должно стать обеспечение сохранности данных, которые находятся на вашем диске, если они имеют для вас ценность. Как вы правильно заметили, лучше всего использовать третью строну для создания резервной копии данных. Рассмотрим подробный план действий:

1. Отключение Secure Boot

Для начала отключите Secure Boot в BIOS вашего компьютера. Это упростит процесс манипуляций с загрузочными разделами и установкой системы.

2. Использование LiveCD/USB

Создайте загрузочный USB-носитель с дистрибутивом Ubuntu или любого другого Linux, который вы предпочитаете. Загрузитесь с этого носителя и выполните монтирование нужных разделов, чтобы получить доступ к данным. Команда может выглядеть примерно так:

sudo mount /dev/sda1 /mnt

3. Проверка и восстановление файловой системы

Используйте fsck (File System Consistency Check) для проверки и, если возможно, исправления ошибок файловой системы на вашем диске.

sudo fsck -y /dev/sda1

Обратите внимание, что данная операция может исправить логические ошибки, но не всегда способна вернуть утерянные данные, если произошли физические повреждения.

4. Сохранение данных

После восстановления доступа к данным, перенесите их на третий носитель (например, внешний жесткий диск или другой компьютер по сети). Используйте команды, такие как rsync для детального копирования:

rsync -avh /mnt/важные_данные /path/to/backup/

5. Переустановка системы

Если данные сохранены, простейшим решением будет полная переустановка операционной системы. Удалите старые разделы и создайте новую компьютерную партицию с чистой системой. При этом следуйте рекомендациям по разделению диска, чтобы улучшить производительность и снизить риск повреждений в будущем.

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

Если вы решили не переустанавливать систему, попробуйте восстановить GRUB. Сначала смонтируйте систему как прежде, затем примените chroot, чтобы выполнять команды от имени поврежденного окружения. Не забудьте проверить, что все необходимые каталоги, такие как /boot и /usr, корректно смонтированы.

sudo chroot /mnt
grub-install /dev/sda
update-grub

Также необходимо обновить initramfs:

update-initramfs -u

Заключение

Крах GRUB и потеря системных файлов — это серьёзная проблема, но правильный подход и планирование помогут в её решении. Главное — заботьтесь о безопасности данных и используйте подход "сначала резервное копирование, затем исправление". Описанные шаги должны помочь вам либо восстановить текущую систему, либо безболезненно перейти на новую, с сохранением важной информации.

Оцените материал
Добавить комментарий

Капча загружается...