LINUX.ORG.RU

Случайно удалил все ядра в дебиане, помогите?

 , ,


1

2

Всем привет! Помогите пожалуйста я удалил все ядра в дебиане, воспользовавшись с этими инструкциями. Думал прокатит, оказался шляпа. Перед тем как сюда писать, я попытался восстановить с лайв дистрибутива, делал такие инструкции:

sudo mkdir /mnt/boot
sudo mount /dev/sda5 /mnt/boot
sudo mount /dev/sda6 /mnt
sudo mount --bind /sys /mnt/sys
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo cp -f /etc/resolv.conf /mnt/etc/resolv.conf

И ничего не копируется в резолв? Пишет:

cp: '/etc/resolv.conf' и '/mnt/etc/resolv.conf' - один и тот же файл

Попытался chroot'ом изменить, тоже пишет:

/etc/resolv.conf" E166: Can't open linked file for writing

Как вообще сеть поднять, или есть какие-то варианты?


Ответ на: комментарий от Vsevolod-linuxoid

При чем тут настройки сети в /etc/resolv.conf, если ты ядра удалил?

Притом что я хочу его восстановить.

sudo apt update && sudo apt install linux-image-generic

Или есть варианты? Предлагай?

Hufoc
() автор топика

Возможно что-то в пути /mnt/etc/resolv.conf — симлинк на аналогичное под /. Проверь что напишет readlink -e /mnt/etc/resolv.conf

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

dpkg работает без сети. И в Дебиане нет пакета linux-image-generic, как и старых ядер — они автоматически удаляются. Инструкции от убунты не всегда подходят.

Просто скачай .deb с ядром https://packages.debian.org/stretch/linux-image-4.9.0-5-amd64 и на флешке принеси.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 2)
Ответ на: комментарий от Hufoc

/run/NetworkManager/resolv.conf

Вот.

Теперь надо узнать что имено есть симлинк и на что. Покажи

file /mnt/etc
file /mnt/etc/resolv.conf

Ну и пальцем в небо вот такая команда должна заставить chroot работать (в твоем случае:

sudo mkdir /mnt/run
sudo mount --bind /run /mnt/run

KennyMinigun ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

Просто скачай .deb с ядром https://packages.debian.org/stretch/linux-image-4.9.0-5-amd64 и на флешке принеси.

Такс.. я скачал. А потом этот пакет в монтированный раздел подсунуть или как? Вот смотри правильно ли я сделаю?

sudo mv /home/user/Загрузки/linux-image-4.9.0-5-amd64_4.9.65-3+deb9u2_amd64.deb /mnt/mnt
sudo chroot /mnt
cd /mnt
dpkg linux-image-4.9.0-5-amd64_4.9.65-3+deb9u2_amd64.deb /mnt/mnt
Hufoc
() автор топика
Ответ на: комментарий от Hufoc

Теоретически, если сделаешь тот mount --bind для /run, то сеть должна заработать под chroot

KennyMinigun ★★★★★
()
Последнее исправление: KennyMinigun (всего исправлений: 1)
Ответ на: комментарий от Vsevolod-linuxoid

Покажи вывод lsblk

user@debian:~$ sudo lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0   1,7G  1 loop /lib/live/mount/rootfs/filesystem.squashfs
sda      8:0    0 465,8G  0 disk 
├─sda1   8:1    0   100M  0 part 
├─sda2   8:2    0  99,9G  0 part 
├─sda3   8:3    0 265,8G  0 part 
├─sda4   8:4    0     1K  0 part 
├─sda5   8:5    0   476M  0 part /mnt/boot
└─sda6   8:6    0  99,5G  0 part /mnt
sr0     11:0    1   1,8G  0 rom  /lib/live/mount/medium
Hufoc
() автор топика
Ответ на: комментарий от Hufoc
dpkg linux-image-4.9.0-5-amd64_4.9.65-3+deb9u2_amd64.deb /mnt/mnt

Если в chroot, то надо просто

dpkg -i linux-image*.deb

KennyMinigun ★★★★★
()
Последнее исправление: KennyMinigun (всего исправлений: 1)
Ответ на: комментарий от Vsevolod-linuxoid

Установил ядро. А теперь при попытке обновить grub ругается

root@debian:/# update-grub
/usr/bin/grub-editenv: error: cannot open `/boot/grub/grubenv.new': No such file or directory.
/usr/sbin/grub-mkconfig: 253: /usr/sbin/grub-mkconfig: cannot create /boot/grub/grub.cfg.new: Directory nonexistent
Просто, у меня там 2 системы. С окнами тоже пользуюсь. Как можно это решить? Благодарю что помогаешь мне).

Hufoc
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

Да /boot это загрузочный, а / root

Hufoc
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

Та, что в моем удаленном комменте, неправильна.

А удалил этот комент? Так я ж, с этой командой установил.

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

Ну может и правильна. Я просто сообразил, что не уточнил, как там у тебя примонтировано.

Может и обошлось.

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

Я просто удивился, что ты в /mnt монтировал, обычно в /mnt/chroot делают.

Я привык с арчевского подхода, там же примерно там делается. С арча я просто устал, постоянные обновления. Хочу окончательно остановиться в дебиане. Здесь хоть обновы умеренные...

Hufoc
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

Покажи вывод из chroot

root@debian:/# ls -la /boot
total 25284
drwxr-xr-x  2 root root     4096 Feb 10 00:06 .
drwxr-xr-x 22 root root     4096 Feb 10 00:06 ..
-rw-r--r--  1 root root  3185098 Jan  4 18:12 System.map-4.9.0-5-amd64
-rw-r--r--  1 root root   186473 Jan  4 18:12 config-4.9.0-5-amd64
-rw-r--r--  1 root root 18285298 Feb 10 00:06 initrd.img-4.9.0-5-amd64
-rw-r--r--  1 root root  4216608 Jan  4 18:12 vmlinuz-4.9.0-5-amd64
Hufoc
() автор топика

sudo mount /dev/sda5 /mnt/boot
sudo mount /dev/sda6 /mnt

дело в том, что монтирование разделов надо проводить в порядке от корня в глубину... А в вашем случае получается, что вы монтируете boot, а затем поверх монтируете root, в котором каталог boot пустой.

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

Так, теперь выйди из chroot, потом выполни

cd /home
sudo umount /dev/sda5
sudo umount /dev/sda6
cd /mnt
sudo mkdir boot root
sudo mount /dev/sda5 boot
sudo mount /dev/sda6 root
ls -la boot
ls -la root
ls -la root/boot
Выводы трех последних команд выложи сюда. UPD: возможно, /dev/sda6 нужно отмонтировать раньше 5.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 2)
Ответ на: комментарий от keir

Блин, как же я это пропустил. Точно. Из за суеты голова вообще соображал. Получается из этого ядро установился в /boot

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

Короче, если я правильно понял, то вот алгоритм исправления ситуации:

  1. Выходишь из chroot, отмонтируешь все разделы
  2. cd /mnt
  3. sudo mkdir chroot
  4. sudo mount /dev/sda6 /mnt/chroot
  5. sudo chroot /mnt/chroot
  6. dpkg --purge linux-image-4.9.0-5-amd64_4.9.65-3+deb9u2_amd64
  7. rm -rf /boot/*
  8. exit
  9. sudo mount /dev/sda5 /mnt/chroot/boot
  10. sudo chroot /mnt/chroot
  11. dpkg -i linux-image-4.9.0-5-amd64_4.9.65-3+deb9u2_amd64.deb
  12. update-grub
Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от Vsevolod-linuxoid

Благодарю всем. Самое главное надо было соблюдать порядок монтирования. И все было бы в ёлочку! Вопрос решен.

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