Я работаю на сервере Ubuntu 12.04 LTS LAMP. Я получил сообщение о том, что мой корневой каталог был переполнен после запуска apt-get dist-upgrade, поэтому, следуя инструкциям, которые я нашел в Интернете, я удалил некоторые из старых ядер с помощью apt-get. Однако я как-то случайно удалил все ядра. Моя система не перезагрузится сейчас.
Я нашел тему от 2011 года о решении этой проблемы Как восстановить систему после случайного удаления всех ядер?
Но когда я пытаюсь следовать инструкциям, они не не работает для меня.
Когда я делаю это:
sudo parted -l
я получаю это:
Model: ATA WDC WD20EZRX-00D (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 256MB 255MB primary ext2 boot
2 257MB 2000GB 2000GB extended
5 257MB 2000GB 2000GB logical lvm
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0
has been opened read-only.
Error: Can't have a partition outside the disk!
Я не понимаю, почему раздел 1 является ext2, так как это была новая установка 12,04 LTS, но я выполнил эту команду в соответствии с инструкциями:
sudo mount /dev/sda1 /mnt
Затем я попробовал эту команду:
sudo mount --bind /dev /mnt/dev
и он сказал, что не может найти точку монтирования.
Итак, я сделал это:
mkdir /mnt/dev
и затем он сделал монтировку.
Хорошо, теперь я готов к chroot, следуя инструкциям:
sudo chroot /mnt
И я получаю это:
chroot: failed to run command '/bin/bash': No such file or directory
Я заранее извиняюсь, но я не знаю достаточно о Linux, чтобы понять, что здесь происходит. Может ли кто-нибудь помочь мне? Мне потребуется много времени, чтобы переустановить все на моем сервере.
ОБНОВЛЕНИЕ: Спасибо за ваш ответ. Когда я ввожу
sudo pvs
, я получаю:
PV VG Fmt Attr PSize PFree
/dev/sda5 HOP-Server lvm2 a- 1.82t 136.00m
Затем я ввожу
sudo lvdisplay /dev/HOP-Server
и получаю это:
--- Logical volume ---
LV Name /dev/HOP-Server/root
VG Name HOP-Server
LV UUID feUsjU-HFHi-WFre-322J-SlWF-0J1K-zpiTQX
LV Write Access read/write
LV Status NOT available
LV Size 1.81 TiB
Current LE 474993
Segments 1
Allocation inherit
Read ahead sectors auto
--- Logical volume ---
LV Name /dev/HOP-Server/swap_1
VG Name HOP-Server
LV UUID tuJSFw-EKU4-oeLI-A934-srj2-DA2L-VqZtYr
LV Write Access read/write
LV Status NOT available
LV Size 7.20 GiB
Current LE 1843
Segments 1
Allocation inherit
Read ahead sectors auto
Это немного отличается от вашего примера, но я предполагаю, что я должен ввести
sudo mount /dev/HOP-Server/root /mnt **UPDATED**
Но когда я это сделаю, я получу это:
mount: special device /dev/HOP-Server/root does not exist
** ОБНОВЛЕНИЕ: ** Я использовал это веб-страница, чтобы помочь мне смонтировать раздел файловой системы:
http://linuxwave.blogspot.com/2007/11/mounting-lvm-disk-using-ubuntu-livecd.html
После этого я смог выполнить остальные оригинальные инструкции без ошибок. Однако, когда я перезагружаюсь, единственными вариантами являются запуск двух версий утилиты тестирования памяти. Я снова перезагрузил live CD и снова следовал инструкциям. Когда я добрался до apt-get для ядра, он сказал, что он обновлен.
ОБНОВЛЕНИЕ: Хорошо, я снова смонтировал разделы, и я вижу, что в / root находится файл с именем initrd.img-3.2.0-56-generic. IIRC, это последнее ядро. Я запустил update-grub, но выдает ошибку "не могу найти устройство для /".
ОБНОВЛЕНИЕ: После другого поиска я нашла это:
http://sourceforge.net/apps/mediawiki/bootinfoscript/index.php?title=Boot_Problems:Cannot_Find_A_Device_For_boot/grub
Я следовала этой процедуре, и она не выявила никаких ошибок. Однако теперь, когда я загружаюсь, я получаю это:
error: ELF header smaller than expected
grub rescue>
Похоже, ваша Ubuntu использует LVM в качестве своего корня. Смонтированный вами раздел ext2 содержит все необходимое, чтобы ваша система могла загружаться и монтировать lvm, остальное - включая bash
- там хранится.
Чтобы найти том LVM, содержащий ваши данные, вам нужен пакет lvm2 , который не установлен в работающей системе. Таким образом, установите его.
sudo apt-get install lvm2
Найдите группу томов, содержащую ваш корневой раздел, перечислив все группы томов.
sudo pvs
Выходные данные должны выглядеть следующим образом:
PV VG Fmt Attr PSize PFree
/dev/sda2 vg1 lvm2 a-- 1,64t 236,91g
Второй столбец содержит имя группы томов, в данном случае vg1
. При этом вы можете получить информацию о томах, содержащихся в этой группе, выполнив
sudo lvdisplay /dev/vg1
Вывод будет выглядеть как
--- Logical volume ---
LV Path /dev/vg1/lv1
LV Name lv1
VG Name vg1
LV UUID kE8qXE-bI4u-NLzZ-u37A-wZfx-NtaU-57PqRj
LV Write Access read/write
LV Creation host, time ,
LV Status available
# open 1
LV Size 1000,00 GiB
Current LE 256000
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:0
Вы ищете Имя Л.В., в данном случае lv1
. В случае, если есть только один том, это должен быть ваш корневой диск. В противном случае, смонтируйте их все и посмотрите, какой из них содержит данные вашей системы.
Установка тома так же проста, как
sudo mount /dev/vg1/lv1 /mnt
Как только вы это сделаете, вы можете продолжить, следуя инструкциям из найденной ветки.
Обновление : Как уже упоминалось в комментариях, поскольку вы используете отдельный загрузочный раздел (/dev/sda1
), вам придется смонтировать его на /mnt/boot/
. Второй ответ в найденной вами ветке содержит более подробную информацию об этом.
Обновление 2 : последняя ошибка обычно указывает, что что-то не так с вашей установкой grub. Если у вас есть доступ к удаленному графическому интерфейсу, вы можете попробовать использовать Boot Repair . Если это не поможет или у вас есть только терминал, я бы посоветовал создать новый поток, сфокусированный на этой новой проблеме.