Я уничтожил файлы в /, и теперь у меня возникает паника ядра, что мне делать?

Я случайно удалил все файлы в /, моя система больше не запускается. Папки и ссылки все еще там, кажется, ничего не потеряно. но «паника ядра не синхронизируется, не удается смонтировать root fs» после того, как grub попытался запустить систему.

Полностью зашифрованная система xubuntu 12.04, шифрование в порядке, доступно с помощью функции спасения. Пробовал несколько вещей с помощью спасения и установил новую систему на другом разделе, чтобы вручную скопировать удаленные файлы. но никаких дополнительных файлов там нет. Может быть, файлы, которые появляются только в зашифрованной системе?

  • Мне нужен способ для восстановления моей системы (недостающие файлы?)

  • И способ чтобы загрузить его снова, так как мне пришлось установить grub в MBR для системы в другом разделе (иначе не получилось, установка / спасение / ubuntu стала нелепой).

-1
задан 26 November 2013 в 15:29

1 ответ

Хорошо, если то, что вы говорите в комментариях, верно, вы использовали shred * с пользователем root (единственный способ сделать это). Но сначала давайте прочитаем руководство:

ОПИСАНИЕ: несколько раз перезаписывайте указанные ФАЙЛ (-ы), чтобы затруднить даже очень дорогостоящее аппаратное зондирование для восстановления данных.

Итак, что вы сделали. Вы просто заменили содержимое файлов (не сами файлы) мусором:

braiam@bt:~/lab$ touch file1 file2 file3
braiam@bt:~/lab$ ls
file1  file2  file3
braiam@bt:~/lab$ cat *
braiam@bt:~/lab$ 
braiam@bt:~/lab$ shred *
braiam@bt:~/lab$ cat *
VXK��6z�z�-K� Eˎ�F��O�č��ؖɄw����Pw(R�����xd/���O��2����lD�y�0��8Gй�4Q�k�7��ݤ
## Actually there was more garbage here, but it would make this answer too long.

Да, последняя строка - это «содержимое» когда-то пустых файлов. Вот почему, когда вы проверяете файлы, они все еще там, но все содержимое в беспорядке.

К счастью, Шред не может открывать каталоги:

braiam@bt:~/lab$ mkdir dir
braiam@bt:~/lab$ mkdir dir1
braiam@bt:~/lab$ mkdir dir2
braiam@bt:~/lab$ ls 
dir  dir1  dir2  file1  file2  file3
braiam@bt:~/lab$ touch dir/file2
braiam@bt:~/lab$ touch dir1/file2
braiam@bt:~/lab$ touch dir2/file2
braiam@bt:~/lab$ shred *
shred: dir: failed to open for writing: Is a directory
shred: dir1: failed to open for writing: Is a directory
shred: dir2: failed to open for writing: Is a directory
braiam@bt:~/lab$ cat dir/file2 
braiam@bt:~/lab$ 

Итак, все, что было ниже /*/, безопасно. Это оставляет нас с вопросом, что именно тогда вы испортили?

$ ls -p / | grep -v /
0
initrd.img
vmlinuz

(я действительно не знаю, что делает этот файл с именем 0 там, но позволяет игнорировать его)

Итак, вы перепутали initrd.img, который в моем случае связан с initrd.img -> /boot/initrd.img-3.10-1-686-pae, и vmlinuz, который в моем случае связан с vmlinuz -> boot/vmlinuz-3.10-1-686-pae. dpkg -S сообщит нам, какие пакеты имеют эти файлы:

$ dpkg -S boot/vmlinuz-3.10-1-686-pae
linux-image-3.10-1-686-pae: /boot/vmlinuz-3.10-1-686-pae
$ dpkg -S initrd.img-3.10-1-686-pae
dpkg-query: no path found matching pattern *initrd.img-3.10-1-686-pae*

Как вы можете видеть, файл vmlinuz * находится внутри linux-image-3.10-1-686-pae, поэтому простой переустановки в среде chroot должно быть достаточно. Для initrd.img все сложно, и потребуется использование mkinitramfs или, более конкретно, update-initramfs:

$ update-initramfs -h
Usage: /usr/sbin/update-initramfs [OPTION]...

Options:
 -k [version]   Specify kernel version or 'all'
 -c     Create a new initramfs
 -u     Update an existing initramfs
 -d     Remove an existing initramfs
 -t     Take over a custom initramfs with this one
 -b     Set alternate boot directory
 -v     Be verbose
 -h     This message

При вызове update-initramfs в изолированной среде, вероятно, вы получите ваш система снова.

0
ответ дан 26 November 2013 в 15:29

Другие вопросы по тегам:

Похожие вопросы: