Возможно, кому-то это понадобится:)
По сути, некоторое время назад я возился с режимами сжатия initramfs и создал однострочник, чтобы обновлять только текущий образ initramfs. Путем проб и ошибок я добился успеха. Однако, поскольку я был новичком с bash в целом, я создал проблему.
Вывод терминала при попытке обновить все образы initrd:
root@OMEN:/boot# update-initramfs -k all -c
update-initramfs: Generating /boot/initrd.img-{uname
WARNING: missing /lib/modules/{uname
Ensure all necessary drivers are built into the linux image!
depmod: ERROR: Bad version passed {uname
dpkg: įspėjimas: version '{uname' has bad syntax: version number does not start with digit
dpkg: įspėjimas: version '{uname' has bad syntax: version number does not start with digit
depmod: ERROR: Bad version passed {uname
update-initramfs: Generating /boot/initrd.img--r}
update-initramfs: Generating /boot/initrd.img-(uname
WARNING: missing /lib/modules/(uname
Ensure all necessary drivers are built into the linux image!
depmod: ERROR: Bad version passed (uname
dpkg: įspėjimas: version '(uname' has bad syntax: version number does not start with digit
dpkg: įspėjimas: version '(uname' has bad syntax: version number does not start with digit
depmod: ERROR: Bad version passed (uname
update-initramfs: Generating /boot/initrd.img--r)
Как мне избавиться от всех этих ошибок?
Вопрос был в том, как инструмент update-initramfs имеет представление об этих «версиях» (как ему удалось «сгенерировать» их - другое: D)? Чтобы найти ...
cd
(перейти) в каталог:
lukas @ OMEN : / etc / initramfs-tools $ cd / var / lib / initramfs-tools
ls
(список) файлов в текущем каталоге:
lukas @ OMEN : / var / lib / initramfs-tools $ ls
'-r)' -r} '(uname' {uname '(uname -r)' '{uname -r}'
Здесь мы видим эти файлы. Просто продолжайте удалять их один за другим, если вы обнаружите что-то еще, что вам может понадобиться, или просто удалите их все:
lukas @ OMEN : ~ $ sudo rm / var / lib / initramfs-tools / *
Теперь удалите ненужные файлы в / boot
...
Сначала проверьте, какие файлы там:
lukas@OMEN:~$ ls /boot
boot initrd.img-5.7.10-xanmod2 System.map-5.4.0-42-generic
config-5.3.0-62-generic initrd.img-5.7.11-xanmod1 System.map-5.7.10-xanmod2
config-5.4.0-42-generic initrd.img-{uname System.map-5.7.11-xanmod1
config-5.7.10-xanmod2 'initrd.img-{uname -r}' vmlinuz-5.3.0-62-generic
config-5.7.11-xanmod1 lost+found vmlinuz-5.4.0-42-generic
efi memtest86+.bin vmlinuz-5.7.10-xanmod2
grub memtest86+.elf vmlinuz-5.7.11-xanmod1
initrd.img-5.3.0-62-generic memtest86+_multiboot.bin
initrd.img-5.4.0-42-generic System.map-5.3.0-62-generic
Затем удалите файлы, которые вы считаете ненужными. (be careful, deleting wrong files can make your system unbootable):
lukas@OMEN:~$ sudo rm "/boot/initrd.img-{uname -r}"
If the files have space symbol or some weird symbols, put the argument after rm
in quotes (both '
and "
work)
If you did accidentally delete an image that was needed, do not reboot your computer, first do this:
uname -r
, then sudo ls /boot
and check if running kernel still has initrd image (should be initrd.img-VERSION
, where VERSION
is the output from uname -r
). If there is such a file, you will be able to reboot your PC into GNU/Linux. Following next steps are still recommended, though.sudo apt install synaptic
), then launch from your dash or application menu.linux-image
packages (put what is in quotes into search box, wait a sec for the application to load package list, then sort packages by "installed version" or "status"./boot
directory with ls /boot
again, and if you have the initrd images again, you can relax and do what you want, successful reboot included.