xpt*_*xpt 3 linux boot kernel ubuntu linux-kernel
所有 Linux 都应该带有vmlinuz“ /”和“ /boot/”。但是,我的系统没有它:
% ls -l /vmlinuz* /initrd* /boot/vmlinuz*
ls: cannot access '/vmlinuz*': No such file or directory
ls: cannot access '/initrd*': No such file or directory
ls: cannot access '/boot/vmlinuz*': No such file or directory
Run Code Online (Sandbox Code Playgroud)
怎么才能把三个都找回来呢?
我试过,
apt-get install --reinstall linux-image-generic linux-headers-generic
update-initramfs -u
Run Code Online (Sandbox Code Playgroud)
根据我读过的文章,这应该已经解决了问题,因为实际的软件包也会重新安装:
% apt-get install --reinstall linux-image-generic linux-headers-generic
Preparing to unpack .../linux-headers-generic_4.15.0.20.23_amd64.deb ...
Unpacking linux-headers-generic (4.15.0.20.23) over (4.15.0.20.23) ...
Preparing to unpack .../linux-image-generic_4.15.0.20.23_amd64.deb ...
Unpacking linux-image-generic (4.15.0.20.23) over (4.15.0.20.23) ...
Processing triggers for ureadahead (0.100.0-20) ...
Processing triggers for install-info (6.5.0.dfsg.1-2) ...
Processing triggers for systemd (237-3ubuntu10) ...
Processing triggers for man-db (2.8.3-2) ...
Setting up linux-image-generic (4.15.0.20.23) ...
Setting up linux-headers-generic (4.15.0.20.23) ...
Processing triggers for ureadahead (0.100.0-20) ...
Processing triggers for systemd (237-3ubuntu10) ...
Run Code Online (Sandbox Code Playgroud)
但之后我仍然缺少上述三个文件。
apt-get install --reinstall linux-image-generic
Run Code Online (Sandbox Code Playgroud)
只会重新安装一个空包,该包不包含实际的内核代码,但仅针对其提取的依赖项而存在。
应该(重新)安装而不是恢复丢失的文件的是当前由linux-image-generic/boot指定为依赖项的包。今天是linux-image-4.15.0-20-generic。所以:
apt-get install --reinstall linux-image-4.15.0-20-generic
Run Code Online (Sandbox Code Playgroud)
应该使丢失的文件(重新)出现。实际上它只包含最少需要的文件:/boot/vmlinuz-4.15.0-20-generic. 另外,重新安装其依赖项linux-modules-4.15.0-20-generic将恢复其他一些丢失的文件/boot(根据列表):
/boot/System.map-4.15.0-20-generic
/boot/abi-4.15.0-20-generic
/boot/config-4.15.0-20-generic
/boot/retpoline-4.15.0-20-generic
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23023 次 |
| 最近记录: |