Twoje problemy mogą nie mieć nic wspólnego z głównym systemem, a raczej z nośnikiem instalacyjnym (pamięć USB) ... ➪ patrz tutaj: askubuntu.com/a/632636/479118
Frank Nocke
Nie mogę opublikować odpowiedzi, ponieważ nie mam wystarczającej liczby powtórzeń, ale kiedy dostałem ten problem, rozwiązałem go, uruchamiając pamięć USB na żywo, montując partycję główną i EFI , umożliwiając pracę w sieci i uruchamiając, sudo apt-get install linux-image-genericaby zaktualizować do najnowszej wersji jądro.
Owen
Odpowiedzi:
82
Brakuje initramfs dla tego jądra. Wybierz inne jądro z menu GRUB w sekcji Zaawansowane opcje dla Ubuntu i uruchom, sudo update-initramfs -u -k versionaby wygenerować initrd dla version(zamień versionna ciąg wersji jądra, np. 4.15.0-36-generic) sudo update-grub.
co się stanie, jeśli podczas wybierania unikalnej opcji jądra, która istnieje dla tego systemu operacyjnego (w scenariuszu wielokrotnego rozruchu), wyświetla się panika jądra, jak można uruchomić aktualizację-initramfs?
knocte
3
@ Rosa, kiepski komentarz ...
psusi
2
@knocte, patrz odpowiedź Tomeu Roiga.
psusi
1
Wygląda na kiepską odpowiedź, ale to prawda!
user3215
2
Nie mogę wprowadzić Ubuntu Systemlub Recovery Mode, jak wykonać to polecenie, aby sprawdzić, czy działa?
Casper
53
Zacznij od podglądu na żywo, otwórz terminal
sudo fdisk -l
sudo mount /dev/sdax /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
a teraz możesz tworzyć update-initramfsi aktualizować grub bez błędów.
update-initramfs -u -k 2.6.38-8-generic (or your version)
Dodałem sudo mount --bind /dev/pts /mnt/dev/ptsi sudo mount --bind /sys /mnt/sysw mojej edycji; bez tego update-grub2narzekał.
Hbf
4
jak mogę znaleźć dokładnyversion ?
knocte
1
Żaden punkt montowania nie istnieje poza pierwszym / dev / sdax, jeśli używasz EFI.
Paul Gregoire,
@knocte spróbuj ls /mnt/bootposzukać najnowszej wersji jądra. Lub jeśli chcesz to zrobić poprawnie, przeczytaj menuentry 'Ubuntu'od/mnt/boot/grub/grub.cfg
Ciro Santilli 事件 改造 中心 法轮功 六四 事件
Pracował na Ubuntu 14.04! initrdBrakowało /boot. Pytanie brzmi: jak to możliwe, że plik po prostu zniknął? Nie zrobiłem nic, co wydawałoby się niebezpieczne.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
22
W mojej sytuacji problem polegał na tym, że /bootmiał 100% pojemności, więc ostatnie 2 aktualizacje jądra nie zakończyły się pomyślnie, dlatego po ponownym uruchomieniu, gdy GRUB2 wybrał najnowsze jądro, nie powiodło się.
Rozwiązałem problem, uruchamiając się do najstarszego zainstalowanego jądra i usuwając niektóre nieużywane jądra za pomocą aptitude. Korzystając z aptitude , po dezinstalacji dpkg automatycznie próbował skonfigurować uszkodzone pakiety i tym razem się udało.
To było najbliższe mojemu rozwiązaniu; samo uruchomienie dpkg --configure -awystarczyło, aby uruchomić hak aktualizacji-initramfs i naprawić zepsute jądro.
Symetryczny
Masz na myśli, że miałeś osobną /bootpartycję?
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
1
Był to serwer skonfigurowany przed moim przybyciem i skonfigurowany z / boot na własnej partycji i nienadzorowanej aktualizacji
sheepeatingtaz
3
Możesz użyć sudo apt-get autoremovedo usunięcia starych jąder na wypadek, gdyby zabrakło Ci miejsca /boot.
Florian Brucker
Uruchomiłem starsze jądro, zrobiłem sudo apt-get autoremoveponownie, uruchomiłem ponownie (starsze jądro), potem zrobiłem a sudo apt-get dist-upgrade, i to zadziałało. To było na małej maszynie testowej, którą mam. Ten sam problem, 100%/boot
jmlumpkin
18
W przypadku gdy nastąpi to po przerwanej aktualizacji jądra (np. Awaria systemu podczas aptitude safe-upgrade),
boot ze starszym jądrem i
biegnij dpkg --configure -a.
To zakończy aktualizację, w tym konfigurację ustawień rozruchu, jak wyjaśnia psusi .
---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)-
Jednak kilka wierszy powyżej pokazuje komunikaty typu:
VFS: Cannot open root device "vdb" or unknown-block(0,0): error -6
Please append a correct "root=" boot option; here are the available partitions:
fe00 524288 vda
driver: virtio_blk
co w zasadzie mówi mi wprost, że vdbnie znaleziono, ale że istnieje taki, /dev/vdaktóry można odczytać dzięki virtio_blksterownikowi ( CONFIG_VIRTIO_BLK=y).
Mam ten problem, ponieważ moja partycja / boot była pełna, więc moje aktualizacje jądra nie powiodły się. Udało mi się to naprawić, uruchamiając ze starego jądra w menu GRUB.
Kiedy udało mi się uruchomić, zacząłem usuwać stare jądra, ale udało mi się uzyskać pewne problemy z zależnościami, więc najpierw musiałem odinstalować pakiet linux-server
sudo apt-get install linux-image-generic
aby zaktualizować do najnowszej wersji jądro.Odpowiedzi:
Brakuje initramfs dla tego jądra. Wybierz inne jądro z menu GRUB w sekcji Zaawansowane opcje dla Ubuntu i uruchom,
sudo update-initramfs -u -k version
aby wygenerować initrd dlaversion
(zamieńversion
na ciąg wersji jądra, np.4.15.0-36-generic
)sudo update-grub
.źródło
Ubuntu System
lubRecovery Mode
, jak wykonać to polecenie, aby sprawdzić, czy działa?Zacznij od podglądu na żywo, otwórz terminal
a teraz możesz tworzyć
update-initramfs
i aktualizować grub bez błędów.Jeśli nie znasz swojej wersji. Posługiwać się:
I po prostu zaktualizuj Grub.
Uruchom ponownie system.
źródło
sudo mount --bind /dev/pts /mnt/dev/pts
isudo mount --bind /sys /mnt/sys
w mojej edycji; bez tegoupdate-grub2
narzekał.version
?ls /mnt/boot
poszukać najnowszej wersji jądra. Lub jeśli chcesz to zrobić poprawnie, przeczytajmenuentry 'Ubuntu'
od/mnt/boot/grub/grub.cfg
initrd
Brakowało/boot
. Pytanie brzmi: jak to możliwe, że plik po prostu zniknął? Nie zrobiłem nic, co wydawałoby się niebezpieczne.W mojej sytuacji problem polegał na tym, że
/boot
miał 100% pojemności, więc ostatnie 2 aktualizacje jądra nie zakończyły się pomyślnie, dlatego po ponownym uruchomieniu, gdy GRUB2 wybrał najnowsze jądro, nie powiodło się.Rozwiązałem problem, uruchamiając się do najstarszego zainstalowanego jądra i usuwając niektóre nieużywane jądra za pomocą aptitude. Korzystając z aptitude , po dezinstalacji dpkg automatycznie próbował skonfigurować uszkodzone pakiety i tym razem się udało.
źródło
dpkg --configure -a
wystarczyło, aby uruchomić hak aktualizacji-initramfs i naprawić zepsute jądro./boot
partycję?sudo apt-get autoremove
do usunięcia starych jąder na wypadek, gdyby zabrakło Ci miejsca/boot
.sudo apt-get autoremove
ponownie, uruchomiłem ponownie (starsze jądro), potem zrobiłem asudo apt-get dist-upgrade
, i to zadziałało. To było na małej maszynie testowej, którą mam. Ten sam problem, 100%/boot
W przypadku gdy nastąpi to po przerwanej aktualizacji jądra (np. Awaria systemu podczas
aptitude safe-upgrade
),dpkg --configure -a
.To zakończy aktualizację, w tym konfigurację ustawień rozruchu, jak wyjaśnia psusi .
źródło
Komunikaty rozruchowe jądra informują, których dysków można użyć
Na przykład, jeśli w moim teście Linux 4.17 wirtualny konfiguracji maszyna zastąpić prawidłowy
root=/dev/vda
zroot=/dev/vdb
ostatniej wiadomości wynosi:Jednak kilka wierszy powyżej pokazuje komunikaty typu:
co w zasadzie mówi mi wprost, że
vdb
nie znaleziono, ale że istnieje taki,/dev/vda
który można odczytać dziękivirtio_blk
sterownikowi (CONFIG_VIRTIO_BLK=y
).źródło
Oprócz instrukcji Tomeu, przed chrootem musiałem:
sudo mount --bind /dev /mnt/dev
Dodatkowo po chroot:
cp -r /usr/lib/i386-linux-gnu/pango /usr/lib/
( Mam to stąd. )
źródło
/dev
na/mnt/dev
.Możesz także uruchomić serwer w trybie ratunkowym i ponownie zainstalować tylko grub
http://info.w3calculator.com/free-code/linux/recover-from-corrupt-boot-image/
źródło
Mam ten problem, ponieważ moja partycja / boot była pełna, więc moje aktualizacje jądra nie powiodły się. Udało mi się to naprawić, uruchamiając ze starego jądra w menu GRUB.
Kiedy udało mi się uruchomić, zacząłem usuwać stare jądra, ale udało mi się uzyskać pewne problemy z zależnościami, więc najpierw musiałem odinstalować pakiet linux-server
Potem zrestartowałem się i wszystko działało dobrze!
źródło