![PS:由于我可能尚未发布图片,我如何才能最好地提供正确的信息以供他人建议?](https://linux22.com/image/872261/PS%EF%BC%9A%E7%94%B1%E4%BA%8E%E6%88%91%E5%8F%AF%E8%83%BD%E5%B0%9A%E6%9C%AA%E5%8F%91%E5%B8%83%E5%9B%BE%E7%89%87%EF%BC%8C%E6%88%91%E5%A6%82%E4%BD%95%E6%89%8D%E8%83%BD%E6%9C%80%E5%A5%BD%E5%9C%B0%E6%8F%90%E4%BE%9B%E6%AD%A3%E7%A1%AE%E7%9A%84%E4%BF%A1%E6%81%AF%E4%BB%A5%E4%BE%9B%E4%BB%96%E4%BA%BA%E5%BB%BA%E8%AE%AE%EF%BC%9F.png)
我不断收到紧急错误消息,告诉我我的 BOOT 卷已满!我该如何安全地清理它?请注意,我是 Linux 新手。
其结果如下uname -a
:
Linux ESPRIMO-E3500 3.13.0-53-generic #89-Ubuntu SMP Wed May 20 10:34:28 UTC 2015 i686 i686 i686 GNU/Linux
我安装了Synaptic 包管理器并查看了状态窗口“自动可移除”:
有类似的东西System.map-3.13.0-46-generic
但是我可以删除其中哪一个(如果有的话)?
在此先感谢您的帮助!
PS:由于我可能尚未发布图片,我如何才能最好地提供正确的信息以供他人建议?
按照要求:
$ dpkg -l | grep linux-image-
rc linux-image-3.13.0-30-generic 3.13.0-30.55 i386 Linux kernel image for version 3.13.0 on 32 bit x86 SMP
ii linux-image-3.13.0-46-generic 3.13.0-46.79 i386 Linux kernel image for version 3.13.0 on 32 bit x86 SMP
ii linux-image-3.13.0-48-generic 3.13.0-48.80 i386 Linux kernel image for version 3.13.0 on 32 bit x86 SMP
ii linux-image-3.13.0-49-generic 3.13.0-49.83 i386 Linux kernel image for version 3.13.0 on 32 bit x86 SMP
ii linux-image-3.13.0-51-generic 3.13.0-51.84 i386 Linux kernel image for version 3.13.0 on 32 bit x86 SMP
ii linux-image-3.13.0-52-generic 3.13.0-52.86 i386 Linux kernel image for version 3.13.0 on 32 bit x86 SMP
ii linux-image-3.13.0-53-generic 3.13.0-53.89 i386 Linux kernel image for version 3.13.0 on 32 bit x86 SMP
rc linux-image-extra-3.13.0-30-generic 3.13.0-30.55 i386 Linux kernel extra modules for version 3.13.0 on 32 bit x86 SMP
ii linux-image-extra-3.13.0-46-generic 3.13.0-46.79 i386 Linux kernel extra modules for version 3.13.0 on 32 bit x86 SMP
ii linux-image-extra-3.13.0-48-generic 3.13.0-48.80 i386 Linux kernel extra modules for version 3.13.0 on 32 bit x86 SMP
ii linux-image-extra-3.13.0-49-generic 3.13.0-49.83 i386 Linux kernel extra modules for version 3.13.0 on 32 bit x86 SMP
ii linux-image-extra-3.13.0-51-generic 3.13.0-51.84 i386 Linux kernel extra modules for version 3.13.0 on 32 bit x86 SMP
ii linux-image-extra-3.13.0-52-generic 3.13.0-52.86 i386 Linux kernel extra modules for version 3.13.0 on 32 bit x86 SMP
iF linux-image-extra-3.13.0-53-generic 3.13.0-53.89 i386 Linux kernel extra modules for version 3.13.0 on 32 bit x86 SMP
iU linux-image-generic 3.13.0.53.60 i386 Generic Linux kernel image
因此,当我运行“sudo apt-get autoremove”时,响应现在是:
正在读取软件包列表...完成正在构建依赖关系树
正在读取状态信息...完成已升级 0 个软件包,新安装 0 个软件包,要删除 0 个软件包,未升级 0 个软件包。
顺便说一下,我确实手动删除了 /boot 中的几个较旧的 linux-image 文件。
现在输出为“apt-get 更新和apt-get dist-upgrade“
20 秒内获取 1166 kB(56,0 kB/s)
正在读取软件包列表...完成
sudo apt-get dist-upgrade 正在读取软件包列表...完成 正在构建依赖关系树
正在读取状态信息...完成 正在计算升级...完成 0 个升级,0 个新安装,0 个要删除,0 个未升级。
只是为了清楚了解当前的情况:
设备:/dev/sda1 大小:255 MB — 39 MB 可用(84.6%已用)
设备:/dev/zorin-os-vg/swap_1 内容:交换(版本 2)— 活动 大小:1.6 GB(1602224128 字节)
uname -r:sudo uname -r 3.13.0-62-通用
dpkg -l | grep linux-image-
rc linux-image-3.13.0-57-generic 3.13.0-57.95
rc linux-image-3.13.0-58-generic 3.13.0-58.97
rc linux-image-3.13.0-59-generic 3.13.0-59.98
rc linux-image-3.13.0-61-generic 3.13.0-61.100 ii linux-image-3.13.0-62-generic 3.13.0-62.102
rc linux-image-extra-3.13.0-57-generic 3.13.0-57.95
rc linux-image-extra-3.13.0-58-generic 3.13.0-58.97 rc linux-image-extra-3.13.0-59-通用 3.13.0-59.98
rc linux-image-extra-3.13.0-61-通用 3.13.0-61.100
ii linux-image-extra-3.13.0-62-通用 3.13.0-62.102
ii linux-image-通用 3.13.0.62.69
奇怪的是(或者可能不是)我仍然收到 /Boot 已满的消息。
因此,为了检查状态,我使用了:df -Th | sort 结果:
/dev/mapper/zorin--os--vg-root ext4 145G 8,9G 129G 7% / /dev/sda1 ext2 236M 235M 0 100% /boot /dev/sdb vfat 967M 233M 735M 25% /media/home/SAN 文件系统 类型 大小 已用 可用 使用率% 挂载于 无 tmpfs 100M 24K 100M 1% /run/user 无 tmpfs 4,0K 0 4,0K 0% /sys/fs/cgroup 无 tmpfs 5,0M 0 5,0M 0% /run/lock 无 tmpfs 750M 80K 750M 1% /run/shm tmpfs tmpfs 150M 1,4M 149M 1% /run udev devtmpfs 737M 4,0K 737M 1% /dev
然后我再次搜索最新的 Keernel 文件:
uname -r 3.13.0-63-通用
运行: ls /usr/src | grep linux-headers 似乎表明我已经清除了所有不需要的内核:
linux-headers-3.13.0-62 linux-headers-3.13.0-62-通用 linux-headers-3.13.0-63 linux-headers-3.13.0-63-通用
奇怪的是,如果我运行:dpkg -l | grep linux-image
我仍然看到所有列表,例如:
rc linux-image-3.13.0-57-通用 3.13.0-57.95 rc linux-image-3.13.0-58-通用 3.13.0-58.97 rc linux-image-3.13.0-59-通用 3.13.0-59.98
尽管运行了各种清除命令,情况仍然如此。
因此有人建议运行:sudo apt-get dist-upgrade 来清除除最后一个内核之外的所有内容。
结果:
gzip:标准输出:设备上没有剩余空间 E:mkinitramfs 失败 cpio 141 gzip 1 update-initramfs:/boot/initrd.img-3.13.0-63-generic 失败,1。run-parts:/etc/kernel/postinst.d/initramfs-tools 退出,返回代码为 1 dpkg:错误处理软件包 linux-image-extra-3.13.0-63-generic (--configure):子进程安装后安装脚本返回错误退出状态 1 dpkg:依赖性问题阻止 linux-image-generic 的配置:linux-image-generic 依赖于 linux-image-extra-3.13.0-63-generic;但是:软件包 linux-image-extra-3.13.0-63-generic 尚未配置。
dpkg:错误处理软件包 linux-image-generic (--configure):依赖性问题 - 未配置未写入 apport 报告,因为错误消息表明它是先前故障的后续错误。E:子进程 /usr/bin/dpkg 返回错误代码 (1)
因此,当我使用以下命令检查时,似乎我的 /boot 中仍然有很多文件ls -alhR /boot
我发现几个旧的内核文件仍然存在:
-rw-r--r-- 1 root root 1,2M 7 月 25 日 01:11 abi-3.13.0-59-generic -rw-r--r-- 1 root root 1,2M 7 月 29 日 14:40 abi-3.13.0-61-generic -rw-r--r-- 1 root root 166K 7 月 25 日 01:11 config-3.13.0-59-generic -rw-r--r-- 1 root root 166K 7 月 29 日 14:40 config-3.13.0-61-generic -rw-r--r-- 1 root root 27M 7 月 28 日 02:40 initrd.img-3.13.0-59-generic -rw-r--r-- 1 root root 27M 8 月 6 日03:09 initrd.img-3.13.0-61-generic -rw------- 1 root root 2,6M 7 月 25 日 01:11 System.map-3.13.0-59-generic -rw------- 1 root root 2,6M 7 月 29 日 14:40 System.map-3.13.0-61-generic -rw------- 1 root root 5,6M 7 月 25 日 01:11 vmlinuz-3.13.0-59-generic -rw------- 1 root root 5,6M 7 月 29 日 14:40 vmlinuz-3.13.0-61-generic
我刚刚跑了:sudo apt-get 更新和sudo apt-get 自动删除
结果:
正在读取软件包列表... 完成 正在构建依赖关系树
正在读取状态信息... 完成 已升级 0 个软件包,新安装了 0 个软件包,要删除 0 个软件包,未升级 2 个软件包。2 个软件包未完全安装或删除。此操作后,将使用 0 B 的额外磁盘空间。设置 linux-image-extra-3.13.0-63-generic (3.13.0-63.103) ... run-parts:执行 /etc/kernel/postinst.d/apt-auto-removal 3.13.0-63-generic /boot/vmlinuz-3.13.0-63-generic run-parts:执行 /etc/kernel/postinst.d/dkms 3.13.0-63-generic /boot/vmlinuz-3.13.0-63-generic run-parts:执行 /etc/kernel/postinst.d/initramfs-tools 3.13.0-63-generic /boot/vmlinuz-3.13.0-63-generic update-initramfs:生成 /boot/initrd.img-3.13.0-63-generic
gzip:stdout:设备 E 上没有剩余空间:mkinitramfs 失败 cpio 141 gzip 1 update-initramfs:/boot/initrd.img-3.13.0-63-generic 失败,1。run-parts:/etc/kernel/postinst.d/initramfs-tools 退出,返回代码为 1 dpkg:错误处理软件包 linux-image-extra-3.13.0-63-generic(--configure):子进程安装后安装脚本返回错误退出状态 1 dpkg:依赖性问题阻止 linux-image-generic 的配置:linux-image-generic 依赖于 linux-image-extra-3.13.0-63-generic;但是:软件包 linux-image-extra-3.13.0-63-generic 尚未配置。
dpkg:错误处理软件包 linux-image-generic (--configure):依赖性问题 - 未配置 未写入 apport 报告,因为错误消息表明它是上一次失败的后续错误。处理时遇到错误:linux-image-extra-3.13.0-63-generic linux-image-generic E:子进程 /usr/bin/dpkg 返回错误代码 (1)
继续寻找解决方案并找到这个命令“脚本”
dpkg-l'linux-' | sed '/^ii/!d;/'"$(uname -r | sed "s/(.)-([^0-9]+)/\1/")"'/d;s/^[^ ]* [^ ]* ([^ ])。/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
运行此命令时,它显示:将删除以下软件包:linux-headers-3.13.0-62* linux-headers-3.13.0-62-generic* linux-image-3.13.0-62-generic* linux-image-extra-3.13.0-62-generic* 已升级 0 个软件包,新安装 0 个软件包,要删除 4 个软件包,未升级 0 个软件包。2 个软件包未完全安装或删除。执行此操作后,将释放 223 MB 磁盘空间。
确实如此,因为这些文件再也找不到了。但它还说:
正在生成 grub 配置文件... 找到主题:/boot/grub/themes/Zorin/theme.txt 找到 linux 映像:/boot/vmlinuz-3.13.0-63-generic 找到 initrd 映像:/boot/initrd.img-3.13.0-63-generic 找到 linux 映像:/boot/vmlinuz-3.13.0-61-generic 找到 initrd 映像:/boot/initrd.img-3.13.0-61-generic 找到 linux 映像:/boot/vmlinuz-3.13.0-59-generic 找到 initrd 映像:/boot/initrd.img-3.13.0-59-generic 找到 memtest86+ 映像:/memtest86+.elf 找到 memtest86+ 映像:/memtest86+.bin 完成
在这里我再次看到了旧的 3.13.0-59-generic 和 3.13.0-61-generic,它们显然仍然占用了不必要的空间。
还剩下两个问题……
一、我该如何适应dpkg-l'linux-' | sed '/^ii/!d;/'"$(uname -r | sed "s/(.)-([^0-9]+)/\1/")"'/d;s/^[^ ]* [^ ]* ([^ ])。/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge“
那么它也会删除这些旧的内核文件吗?
二 - 似乎最佳做法是在计算机上安装至少两个最新的内核,而我刚刚擦除了其中一个,我还能重新安装“3.13.0-62-generic”吗?如何安装?
一如既往地感谢您的帮助。
感谢所有的帮助我的人。
不太确定我是否已经决定了最好的方法,但我现在倾向于使用:
sudo apt-get 更新;sudo apt-get dist-upgrade;sudo apt-get autoremove
时不时地。
不过,我还是需要找到一种方法来增加我的启动分区的大小,因为我有点怀疑上述方法将来是否足够。
此致
答案1
我假设您有一个单独的 /boot 分区。随着您升级内核,这种情况会随着时间的推移而发生。根据我的经验,如果您在运行时收到一条错误消息,提示您没有剩余空间,dist-upgrade
您可以运行:
sudo apt-get autoremove
然后系统将删除旧内核并安装新内核。如果你想删除不使用的内核,你可以通过搜索linux-headers
和轻松使用 synaptic。Synapticlinux-image
将显示你拥有的所有内核,你可以右键单击每个内核并单击mark for removal
。只需确保不要删除全部删除所有文件,只留下最新的(最好保留一份,以防万一出现问题,这样您就可以恢复原状)。
答案2
开始执行此命令来检查您正在运行哪个版本:
uname -r
然后检查当前安装的 Linux 标头和映像:
dpkg -l | grep -Ei "linux-headers|linux-image"
最后清除旧版本(这里是 3.13.0-30):
sudo apt-get remove linux-headers-3.13.0-30 linux-headers-3.13.0-30-generic linux-image-3.13.0-30-generic linux-image-extra-3.13.0-30-generic --purge
笔记 :请注意,不要清除您正在运行的当前版本。另外,请尽量保留一两个旧版本以防万一。