Вопрос или проблема
У меня есть машина с Ubuntu 15.04. Я установил Docker на эту машину. После установки я пытался запустить тестовый образ Docker, который идет по умолчанию. Но он не запустился. Тогда я попытался выключить машину.
Но машина не выключалась. Она просто зависла и потребляла все ресурсы процессора. Я ждал 10-15 минут, но состояние не изменилось, и ничего не произошло. Поэтому я решил выключить машину, нажав и удерживая кнопку включения на ноутбуке. Таким образом, машина отключилась.
После этого события теперь, когда я пытаюсь загрузиться в машину, она выдает следующую ошибку во время загрузки.
Целевая файловая система не имеет запрашиваемого /sbin/init.
/bin/sh: 0: Невозможно открыть splash
[4.458446] Kernel panic - not syncing: Попытка убить init! exitcode=0x00007f00
[4.458479] CPU: 1 PID: 1 Comm: sh не запятнан 3.13.0-46-generic #79-Ubuntu
У машины установлены три операционные системы: Windows, Centos, Ubuntu-15.04.
Я пробовал решение с fsck
на загрузочном устройстве через сетевую загрузку. Но это не решило проблему.
Я не знаю, является ли пакет Docker частью проблемы. Это могло быть связано с установкой любого пакета.
Вывод команды fsck следующий:
$ fsck /dev/sda5 fsck от util-linux 2.25.2 e2fsck 1.42.12 (29-авг-2014) /dev/sda5: чисто, 885843/1313280 файлов, 3569836/5242880 блоков.
Я также пробовал опцию -f
команды fsck
, вывод для этого следующий:
$ fsck /dev/sda5 -f fsck /dev/sda5 -f fsck от util-linux 2.25.2 e2fsck 1.42.12 (29-авг-2014) Проход 1: Проверка индексов, блоков и размеров Проход 2: Проверка структуры каталогов Проход 3: Проверка связности каталогов Проход 4: Проверка ссылочных счетчиков Проход 5: Проверка информации об итогах групп /dev/sda5: 885843/1313280 файлов (0.1% несмежных), 3569836/5242880 блоков
Запуск команды fdisk -l
выводит следующее сообщение, а также данные об устройстве.
Раздел 5 не начинается на границе физического сектора.
Я смонтировал устройство с помощью команды mount -o ro /dev/sda5 /media/boot
.
Вывод команды ls -l /media/boot
следующий:
всего 116 drwxr-xr-x 2 root root 4096 Янв 26 07:01 bin drwxr-xr-x 3 root root 4096 Дек 26 07:10 boot drwxr-xr-x 2 root root 4096 Янв 4 2015 cdrom drwxr-xr-x 4 root root 4096 Апр 17 2014 dev drwxr-xr-x 164 root root 12288 Янв 26 07:04 etc drwxr-xr-x 2 root root 4096 Янв 4 2015 home lrwxrwxrwx 1 root root 33 Фев 27 2015 initrd.img -> boot/initrd.img-3.13.0-46-generic lrwxrwxrwx 1 root root 33 Фев 4 2015 initrd.img.old -> boot/initrd.img-3.13.0-45-generic drwxr-xr-x 25 root root 4096 Янв 26 07:01 lib drwxr-xr-x 2 root root 4096 Дек 26 06:49 lib32 drwxr-xr-x 2 root root 4096 Дек 26 06:28 lib64 drwx------ 2 root root 16384 Янв 4 2015 lost+found drwxr-xr-x 3 root root 4096 Янв 4 2015 media drwxr-xr-x 2 root root 4096 Апр 10 2014 mnt drwxr-xr-x 6 root root 4096 Окт 2 14:15 opt drwxr-xr-x 2 root root 4096 Апр 10 2014 proc drwx------ 11 root root 4096 Янв 26 10:30 root drwxr-xr-x 12 root root 4096 Апр 17 2014 run drwxr-xr-x 2 root root 12288 Янв 26 07:03 sbin drwxr-xr-x 2 root root 4096 Апр 17 2014 srv drwxr-xr-x 2 root root 4096 Мар 13 2014 sys drwxrwxrwt 6 root root 4096 Янв 26 22:01 tmp drwxr-xr-x 11 root root 4096 Окт 2 14:14 usr drwxr-xr-x 15 root root 4096 Янв 9 02:05 var lrwxrwxrwx 1 root root 30 Фев 27 2015 vmlinuz -> boot/vmlinuz-3.13.0-46-generic lrwxrwxrwx 1 root root 30 Фев 4 2015 vmlinuz.old -> boot/vmlinuz-3.13.0-45-generic
Как мне это исправить?
Похоже, что ваш файл /sbin/init
поврежден, так как вы пытались принудительно выключить систему.
Одно, что вы можете сделать:
- Создайте загрузочную флешку с той же версией 15.04, используя unetbootIn или Создатель дисков для запуска
- Подключите ее к вашему ПК и загрузитесь с этой флешки
- Выберите опцию попробовать Ubuntu без установки
- Здесь найдите раздел, на котором установлена ваша 15.04, это может быть
/dev/sda1
доn
. Там нам нужно полностью заменить/sbin
на/sbin
из источника установки.
Вы можете использовать команду sudo mv
для этого, после замены /sbin
перезагрузите вашу систему.
Это сработает 🙂
Я использовал unetbootin, чтобы исправить эту проблему, теперь она работает как ракета.
Я просто создал загрузочную флешку, вошел в систему под учетной записью по умолчанию, удалил /sbin
из файловой системы по умолчанию и заменил его на мой основной /sbin
.
Пожалуйста, сделайте это под root.
Так просто.
Ура! Она работает.
Ответ или решение
Проблема, с которой вы столкнулись, связана с повреждением файловой системы, особенно с файлом /sbin/init
, после неоправданного завершения работы компьютера. Давайте рассмотрим, как можно исправить эту ситуацию, следуя определённым шагам.
Решение проблемы:
-
Создание загрузочной USB:
- Сначала вам необходимо создать загрузочную USB-накопитель с образом Ubuntu 15.04. Для этого вы можете использовать такие инструменты, как
UNetbootin
илиStartup Disk Creator
. - Загрузите образ Ubuntu 15.04, если у вас его ещё нет.
- Сначала вам необходимо создать загрузочную USB-накопитель с образом Ubuntu 15.04. Для этого вы можете использовать такие инструменты, как
-
Загрузка с USB:
- Подключите созданный USB-накопитель к компьютеру и перезагрузите его.
- Во время загрузки выберите опцию "Try Ubuntu without installing" (Попробовать Ubuntu без установки).
-
Замена повреждённого
/sbin
:- После загрузки откройте терминал и выполните команду
sudo fdisk -l
, чтобы определить, на каком из разделов установлен Ubuntu 15.04 (например, это может быть/dev/sda5
). - Создайте точку монтирования и смонтируйте повреждённый раздел:
sudo mkdir /mnt/ubuntu sudo mount /dev/sda5 /mnt/ubuntu
- Затем смонтируйте
proc
,sys
иdev
для большей совместимости:sudo mount --bind /proc /mnt/ubuntu/proc sudo mount --bind /sys /mnt/ubuntu/sys sudo mount --bind /dev /mnt/ubuntu/dev
- После загрузки откройте терминал и выполните команду
-
Копирование файлов:
- Перейдите в смонтированный раздел:
cd /mnt/ubuntu/sbin
- Ознакомьтесь с содержимым каталога
/sbin
на вашем USB. Монтируйте его:sudo mount /dev/sdX1 /mnt/source_sbin # Замените sdX1 на соответствующий раздел вашего USB
- После того, как вы смонтировали USB, выполните команду для замены повреждённого
/sbin
на рабочее:sudo cp -r /mnt/source_sbin/* /mnt/ubuntu/sbin/
- Перейдите в смонтированный раздел:
-
Перезагрузка:
- После завершения копирования, размонтируйте все монтированные системы:
sudo umount /mnt/ubuntu/proc sudo umount /mnt/ubuntu/sys sudo umount /mnt/ubuntu/dev sudo umount /mnt/source_sbin sudo umount /mnt/ubuntu
- Затем перезагрузите систему и удалите USB-накопитель. Проверьте, загружается ли ваша установка Ubuntu 15.04 без ошибок.
- После завершения копирования, размонтируйте все монтированные системы:
Заключение:
Если все шаги выполнены правильно, ваша система должна загрузиться нормально. Важно помнить, что после аварийного завершения работы всегда есть риск повреждения файловой системы. Регулярно выполняйте резервное копирование важных данных и рассмотрите возможность использования fsck
или других средств проверки файловой системы для предотвращения подобных проблем в будущем.