Вопрос или проблема
Прежде всего, я не слишком опытен здесь 🙂
У меня есть проблема: мой диск 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 и потеря системных файлов — это серьёзная проблема, но правильный подход и планирование помогут в её решении. Главное — заботьтесь о безопасности данных и используйте подход "сначала резервное копирование, затем исправление". Описанные шаги должны помочь вам либо восстановить текущую систему, либо безболезненно перейти на новую, с сохранением важной информации.