LINUX.ORG.RU
решено ФорумAdmin

Неудачно почистил /boot на зашифрованном диске с debian помогите

 , ,


1

1

Всем привет. Пользуюсь Дебиан давно. Ну пользовался и пользовался, всё было хорошо, пока мне не стало выскакивать уведомление что на разделе /boot заканчивается место. Я, недолго думая, открыл терминал, запустил nautilus от root и поудалял там всякое (тупой, простите). Вскоре понял что удалилось лишнее, но понадеявшись на авось, решил что как-нибудь рассосется. И, конечно, после перезагрузки столкнулся с ошибка: файл "/vmlinuz-6.10-22-amd64" не найден Если честно, сегодня весь день провозился с этим, надо бы восстановить. Проблема осложняется тем, что устанавливал с шифрованием. У меня параллельно на другом hdd установлен Debian 11 без шифрования, с него сейчас и пишу. До чего я дошёл/нагуглил: что надо из другой системы скачать ядро, примонтировать раздел / и /boot и потом сделать chroot и потом его там установить с помощью dpkg. С горем пополам я расшифровал этот раздел, но примонтировать не удаётся((

sudo cryptsetup luksOpen /dev/sda5 my_encrypted_volume
Введите парольную фразу для /dev/sda5: 
sudo mount /dev/sda5 /mnt
mount: /mnt: unknown filesystem type 'crypto_LUKS'.
sudo mount /dev/mapper/my_encrypted_volume /mnt
mount: /mnt: unknown filesystem type 'LVM2_member'.

Как мне быть дальше? Либо, может, есть более простой способ? Сам раздел /boot это именно раздел и он не зашифрован, открывается просто через программу файлы из второй системы, называется sda1. Повреждённая система Debian 12, вроде он сам до неё обновился.

Перемещено hobbit из general

Ответ на: комментарий от bit_lit

Отлично.

Тогда делай так:

mount /dev/sda1 /mnt/debian/boot
mount --bind /dev /mnt/debian/dev
mount --bind /proc /mnt/debian/proc
mount --bind /sys  /mnt/debian/sys
chroot /mnt/debian/
apt update
apt install -s linux-image-amd64 linux-headers-amd64 dkms gcc make

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

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid
root@debs:/# apt install -s linux-image-amd64 linux-headers-amd64 dkms gcc make
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово         
Уже установлен пакет gcc самой новой версии (4:12.2.0-3).
gcc помечен как установленный вручную.
Уже установлен пакет make самой новой версии (4.3-4.1).
make помечен как установленный вручную.
Следующие пакеты устанавливались автоматически и больше не требуются:
  libu2f-udev linux-headers-6.1.0-18-amd64 linux-headers-6.1.0-18-common linux-headers-6.1.0-22-amd64
  linux-headers-6.1.0-22-common linux-image-6.1.0-18-amd64
Для их удаления используйте «apt autoremove».
Будут установлены следующие дополнительные пакеты:
  build-essential dpkg-dev fakeroot g++ g++-12 libalgorithm-diff-perl libalgorithm-diff-xs-perl
  libalgorithm-merge-perl libdpkg-perl libfakeroot libfile-fcntllock-perl libstdc++-12-dev
  linux-compiler-gcc-12-x86 linux-headers-6.1.0-29-amd64 linux-headers-6.1.0-29-common
  linux-image-6.1.0-29-amd64 linux-kbuild-6.1 linux-libc-dev patch
Предлагаемые пакеты:
  menu debian-keyring g++-multilib g++-12-multilib gcc-12-doc git bzr libstdc++-12-doc linux-doc-6.1
  debian-kernel-handbook ed diffutils-doc
Следующие НОВЫЕ пакеты будут установлены:
  build-essential dkms dpkg-dev fakeroot g++ g++-12 libalgorithm-diff-perl libalgorithm-diff-xs-perl
  libalgorithm-merge-perl libdpkg-perl libfakeroot libfile-fcntllock-perl libstdc++-12-dev
  linux-headers-6.1.0-29-amd64 linux-headers-6.1.0-29-common linux-image-6.1.0-29-amd64 patch
Следующие пакеты будут обновлены:
  linux-compiler-gcc-12-x86 linux-headers-amd64 linux-image-amd64 linux-kbuild-6.1 linux-libc-dev
Обновлено 5 пакетов, установлено 17 новых пакетов, для удаления отмечено 0 пакетов, и 112 пакетов не обновлено.
Inst libdpkg-perl (1.21.22 Debian:12.9/stable [all])
Inst patch (2.7.6-7 Debian:11.11/oldstable, Debian:12.9/stable [amd64])
Inst dpkg-dev (1.21.22 Debian:12.9/stable [all])
Inst libstdc++-12-dev (12.2.0-14 Debian:12.9/stable [amd64])
Inst g++-12 (12.2.0-14 Debian:12.9/stable [amd64])
Inst g++ (4:12.2.0-3 Debian:12.9/stable [amd64])
Inst build-essential (12.9 Debian:11.11/oldstable, Debian:12.9/stable [amd64])
Inst dkms (3.0.10-8+deb12u1 Debian:12.9/stable [all])
Inst libfakeroot (1.31-1.2 Debian:12.9/stable [amd64])
Inst fakeroot (1.31-1.2 Debian:12.9/stable [amd64])
Inst libalgorithm-diff-perl (1.201-1 Debian:11.11/oldstable, Debian:12.9/stable [all])
Inst libalgorithm-diff-xs-perl (0.04-8+b1 Debian:12.9/stable [amd64])
Inst libalgorithm-merge-perl (0.08-5 Debian:12.9/stable [all])
Inst libfile-fcntllock-perl (0.22-4+b1 Debian:12.9/stable [amd64])
Inst linux-compiler-gcc-12-x86 [6.1.115-1] (6.1.123-1 Debian:12.9/stable [amd64])
Inst linux-headers-6.1.0-29-common (6.1.123-1 Debian:12.9/stable [all])
Inst linux-kbuild-6.1 [6.1.115-1] (6.1.123-1 Debian:12.9/stable [amd64])
Inst linux-headers-6.1.0-29-amd64 (6.1.123-1 Debian:12.9/stable [amd64])
Inst linux-headers-amd64 [6.1.115-1] (6.1.123-1 Debian:12.9/stable [amd64])
Inst linux-image-6.1.0-29-amd64 (6.1.123-1 Debian:12.9/stable [amd64])
Inst linux-image-amd64 [6.1.115-1] (6.1.123-1 Debian:12.9/stable [amd64])
Inst linux-libc-dev [6.1.115-1] (6.1.123-1 Debian:12.9/stable [amd64])
Conf libdpkg-perl (1.21.22 Debian:12.9/stable [all])
Conf patch (2.7.6-7 Debian:11.11/oldstable, Debian:12.9/stable [amd64])
Conf dpkg-dev (1.21.22 Debian:12.9/stable [all])
Conf libstdc++-12-dev (12.2.0-14 Debian:12.9/stable [amd64])
Conf g++-12 (12.2.0-14 Debian:12.9/stable [amd64])
Conf g++ (4:12.2.0-3 Debian:12.9/stable [amd64])
Conf build-essential (12.9 Debian:11.11/oldstable, Debian:12.9/stable [amd64])
Conf dkms (3.0.10-8+deb12u1 Debian:12.9/stable [all])
Conf libfakeroot (1.31-1.2 Debian:12.9/stable [amd64])
Conf fakeroot (1.31-1.2 Debian:12.9/stable [amd64])
Conf libalgorithm-diff-perl (1.201-1 Debian:11.11/oldstable, Debian:12.9/stable [all])
Conf libalgorithm-diff-xs-perl (0.04-8+b1 Debian:12.9/stable [amd64])
Conf libalgorithm-merge-perl (0.08-5 Debian:12.9/stable [all])
Conf libfile-fcntllock-perl (0.22-4+b1 Debian:12.9/stable [amd64])
Conf linux-compiler-gcc-12-x86 (6.1.123-1 Debian:12.9/stable [amd64])
Conf linux-headers-6.1.0-29-common (6.1.123-1 Debian:12.9/stable [all])
Conf linux-kbuild-6.1 (6.1.123-1 Debian:12.9/stable [amd64])
Conf linux-headers-6.1.0-29-amd64 (6.1.123-1 Debian:12.9/stable [amd64])
Conf linux-headers-amd64 (6.1.123-1 Debian:12.9/stable [amd64])
Conf linux-image-6.1.0-29-amd64 (6.1.123-1 Debian:12.9/stable [amd64])
Conf linux-image-amd64 (6.1.123-1 Debian:12.9/stable [amd64])
Conf linux-libc-dev (6.1.123-1 Debian:12.9/stable [amd64])
root@debs:/# 
bit_lit
() автор топика
Ответ на: комментарий от bit_lit

Попробуй запустить последнюю команду без -s и потом уже можно будет пробовать загрузиться на починенный Debian. Правда это не до конца его починит, если починит, нужно будет ещё просканить все установленные пакеты на предмет кривых… потому что часть старых пакетов с ядром будет не иметь своих файлов.

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

В прошлый раз когда до этого дошёл (сегодня днём) - я что-то не стал новое ставить. Решил поставить 6.1.0-22, на отсутствие файлов которого изначально ругался загрузчик. Мало ли grub не обновится или опять места не хватит, подумал я

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

Нет, просто apt был не в курсе, что ты снес файлы. Потому не стал их разворачивать, когда было нужно. Но когда будет новое ядро ставиться, у него и так файлов ранее не было, и все должно сработать.

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

Если поможет и удастся загрузиться на починенный Debian, потом в нём нужно будет сделать:

apt install debsums
debsums -cs
debsums -l

Если последние 2 команды укажут на какие-то пакеты, что сломаны, нужно будет на них apt install --reinstall скомандовать. Ну или ещё как-то починить…

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

К большому сожалению, пишу со старого дебиана на старом диске. Ровно та же проблема что и выше на скриншоте (снятым на телефон) скидывал https://ibb.co/gdJ50r7

либо boot args (cat /proc/cdmline) либо missing modules (cat /proc/modules; ls /dev)

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

Как будто бы он не понимает что дальше запускать, где ему искать /dev/mapper/hp--laptop--vg-root Как будто бы надо в каком-то файле прописать его реальный UID напротив этой строчки

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

В любом случае спасибо тебе большое за помощь! Ты самый добрый и отзывчивый человек на форуме! Я и раньше встречал твои ответы в других темах. Картинка прикольная у тебя =) Если появятся мысли - пиши. На этот раз я настроен довести дело до конца.

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

Не за что, увы. Ты и сам разобрался на примерно том уровне, что планировал решать проблему я. Но она глубже.

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

Это требует времени, а у меня и по работе полно головоломных задач с отладкой Linux. Так что, увы, не могу обещать, что помогу.

В принципе, можно примонтировать ФС, скопировать нужные файлы и переставить ОС заново, если ничего иного не выйдет.

Картинка эта из игры SuperTuxKart.

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

Уже хорошо, cryptsetup есть. Попробуй

cryptsetup open /dev/sda5 cryptoroot
lvm vgchange -ay
ls -l /dev/mapper
mount /dev/hp-laptop-vg/root /root
exit

а то что в initramfs /etc/fstab пустой, так ведь не должно быть?

он здесь ни на что не влияет

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

ОООооооооооооо! undef! Ты мой герой! Уже пишу с того самого поломаного мною месяц назад дебиана! Монтироваться не захотел, мол нет такого файла или директории, но после exit запустился! Теперь главный вопрос - что теперь нужно сделать в этой уже запущенной системе, чтобы наверняка всё встало на свои места?

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