看起来initrd.img我的/boot目录中有一个不必要的:
$ ls -1s /boot
total 82835
1439 abi-4.11.0-10-generic
204 config-4.11.0-10-generic
1 extlinux
1 grub
48186 initrd.img-4.11.0-10-generic
10626 initrd.img-4.8.0-34-generic
10626 initrd.img-4.8.0-39-generic
12 lost+found
180 memtest86+.bin
182 memtest86+.elf
182 memtest86+_multiboot.bin
3695 System.map-4.11.0-10-generic
7501 vmlinuz-4.11.0-10-generic
Run Code Online (Sandbox Code Playgroud)
这些都是initrd.img-4.8.0-34-generic和initrd.img-4.8.0-39-generic,因为我无法找到他们的任何痕迹
$ sudo update-grub2
Generating grub configuration file ...
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-4.11.0-10-generic
Found initrd image: /boot/initrd.img-4.11.0-10-generic
Found memtest86+ image: /memtest86+.elf
Found memtest86+ image: /memtest86+.bin
done
$ dpkg -l *4.8.0*
dpkg-query: no packages found matching *4.8.0*
$ dpkg -l linux-*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-===========================-==================-==================-===========================================================
ii linux-base 4.5ubuntu1 all Linux image base package
un linux-doc-4.11.0 <none> <none> (no description available)
ii linux-firmware 1.167 all Firmware for Linux kernel drivers
ii linux-generic 4.11.0.10.10 amd64 Complete Generic Linux kernel and headers
un linux-headers <none> <none> (no description available)
un linux-headers-3.0 <none> <none> (no description available)
ii linux-headers-4.11.0-10 4.11.0-10.15 all Header files related to Linux kernel version 4.11.0
ii linux-headers-4.11.0-10-gen 4.11.0-10.15 amd64 Linux kernel headers for version 4.11.0 on 64 bit x86 SMP
ii linux-headers-generic 4.11.0.10.10 amd64 Generic Linux kernel headers
un linux-image <none> <none> (no description available)
ii linux-image-4.11.0-10-gener 4.11.0-10.15 amd64 Linux kernel image for version 4.11.0 on 64 bit x86 SMP
ii linux-image-extra-4.11.0-10 4.11.0-10.15 amd64 Linux kernel extra modules for version 4.11.0 on 64 bit x86
ii linux-image-generic 4.11.0.10.10 amd64 Generic Linux kernel image
un linux-initramfs-tool <none> <none> (no description available)
un linux-kernel-headers <none> <none> (no description available)
un linux-kernel-log-daemon <none> <none> (no description available)
ii linux-libc-dev:amd64 4.11.0-10.15 amd64 Linux Kernel Headers for development
ii linux-libc-dev:i386 4.11.0-10.15 i386 Linux Kernel Headers for development
un linux-restricted-common <none> <none> (no description available)
ii linux-sound-base 1.0.25+dfsg-0ubunt all base package for ALSA and OSS sound systems
un linux-source-4.11.0 <none> <none> (no description available)
un linux-tools <none> <none> (no description available)
Run Code Online (Sandbox Code Playgroud)
这两个真的没用吗?如果它们没用,删除它们的正确方法是什么(我读过,rm绝对不推荐用于/boot文件夹)?
EDIT1: sudo apt autoremove也无济于事。
Rav*_*ina 12
每次包触发时都会创建“initrd”映像update-initramfs,因此您不太可能找到与它们对应的包。
用:
dpkg -S /boot/initrd.img*
Run Code Online (Sandbox Code Playgroud)
要查看图像是由哪个包放置的,您应该得到:
dpkg-query: no path found matching pattern /boot/initrd.img-4...
Run Code Online (Sandbox Code Playgroud)
正如我所说,这意味着“我找不到与此文件相关的任何包”。
所以这是我的建议,
删除所有“initrd”图像:
sudo rm /boot/initrd.img*
Run Code Online (Sandbox Code Playgroud)
为您当前安装的所有内核生成新的“intird”映像:
sudo update-initramfs -c -k all
Run Code Online (Sandbox Code Playgroud)
你完成了。
小智 5
在您的情况下,我认为可以initrd.img手动删除 ,因为您显然没有linux-image-4.8.0-34-generic.
对于遇到此线程并需要摆脱“额外”的任何其他人initrd.img,您可能安装了“额外”的 linux 映像,它update-initramfs用于生成此“不需要的”initrd.img
所以在运行之前sudo rm /boot/initrd.img*,请考虑运行:
sudo apt-get remove linux-image-4.8.0-34-generic
Run Code Online (Sandbox Code Playgroud)
现在运行:
sudo update-initramfs -c -k all
我知道您已经解决了您的问题,但我认为其他人可能需要快速说明并且可能不了解您问题的独特性。
除非您非常确定自己在做什么,否则不要手动删除系统文件。
之后您可能需要sudo update-grub手动运行。
| 归档时间: |
|
| 查看次数: |
21177 次 |
| 最近记录: |