我不太喜欢Linux我有以下问题与我的事实有关/启动分区似乎已满,并且似乎导致尝试安装程序时出现问题。
我在用Ubuntu Ubuntu 16.04.1 LTS
我尝试详细解释我的疑虑,因为我不太热衷于系统工程(我是一名软件开发人员)。
1) 执行LSBLK语句列出有关所有可用或指定块设备的信息。
根据经验,我认为它应该显示所有的列表分区/挂载磁盘或类似的东西。这些术语的确切含义是什么块设备?
所以如果我在我的乌班图系统我得到:
root@MyServer-VPS:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 476M 0 part /boot
├─sda2 8:2 0 1K 0 part
├─sda3 8:3 0 10G 0 part
│ └─vg-lv_root 252:0 0 18.6G 0 lvm /
└─sda5 8:5 0 9.5G 0 part
├─vg-lv_root 252:0 0 18.6G 0 lvm /
└─vg-lv_swap 252:1 0 952M 0 lvm [SWAP]
sr0 11:0 1 1024M 0 rom
那么有什么区别磁盘,部分(应该是父盘的一个分区),左室厚度和只读存储器?
具体的分区是启动, 这个:
sda1 8:1 0 476M 0 part /boot
这是一个sda磁盘分区。
据我所知它应该包含Linux 内核下载版本。是吗?
好的,挂载点是/启动所以我认为这是/启动进入我的系统目录(是吗?),内容如下:
root@MyServer-VPS:/boot# ls
abi-4.4.0-21-generic config-4.4.0-21-generic grub System.map-4.4.0-21-generic vmlinuz-4.4.0-21-generic
abi-4.4.0-31-generic config-4.4.0-31-generic initrd.img-4.4.0-21-generic System.map-4.4.0-31-generic vmlinuz-4.4.0-31-generic
abi-4.4.0-34-generic config-4.4.0-34-generic initrd.img-4.4.0-31-generic System.map-4.4.0-34-generic vmlinuz-4.4.0-34-generic
abi-4.4.0-38-generic config-4.4.0-38-generic initrd.img-4.4.0-34-generic System.map-4.4.0-38-generic vmlinuz-4.4.0-38-generic
abi-4.4.0-42-generic config-4.4.0-42-generic initrd.img-4.4.0-38-generic System.map-4.4.0-42-generic vmlinuz-4.4.0-42-generic
abi-4.4.0-45-generic config-4.4.0-45-generic initrd.img-4.4.0-42-generic System.map-4.4.0-45-generic vmlinuz-4.4.0-45-generic
abi-4.4.0-47-generic config-4.4.0-47-generic initrd.img-4.4.0-45-generic System.map-4.4.0-47-generic vmlinuz-4.4.0-47-generic
abi-4.4.0-51-generic config-4.4.0-51-generic initrd.img-4.4.0-47-generic System.map-4.4.0-51-generic vmlinuz-4.4.0-51-generic
abi-4.4.0-53-generic config-4.4.0-53-generic initrd.img-4.4.0-51-generic System.map-4.4.0-53-generic vmlinuz-4.4.0-53-generic
abi-4.4.0-57-generic config-4.4.0-57-generic initrd.img-4.4.0-53-generic System.map-4.4.0-57-generic vmlinuz-4.4.0-57-generic
abi-4.4.0-59-generic config-4.4.0-59-generic lost+found System.map-4.4.0-59-generic vmlinuz-4.4.0-59-generic
那么这些内容到底代表什么呢?该系统上是否下载了不同的 Linux 内核版本?
两者有什么区别阿比-,配置-,initrd.img-,系统.map-和vmlinuz-4文件?
如何检测使用的内核版本?
2) 执行df-h语句我得到这个输出:
root@MyServer-VPS:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 477M 0 477M 0% /dev
tmpfs 100M 16M 84M 16% /run
/dev/mapper/vg-lv_root 19G 12G 6.3G 64% /
tmpfs 497M 0 497M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 497M 0 497M 0% /sys/fs/cgroup
/dev/sda1 461M 458M 0 100% /boot
tmpfs 100M 0 100M 0% /run/user/0
特别是我有:
/dev/sda1 461M 458M 0 100% /boot
所以这意味着我的/启动分区完全满了?
我的问题是:我可以安全地删除所有旧的内核版本(未使用的版本)以释放空间/启动?
我该怎么做?
答案1
这些问题合而为一:
这些术语的确切含义是什么块设备?
块设备是特殊文件,提供对硬件设备的缓冲访问和操作系统的抽象层。
那么有什么区别磁盘,部分(应该是父盘的一个分区),左室厚度和只读存储器?
磁盘和部分正如您所猜测的,是您的物理磁盘或驱动器及其上的分区。 左室厚度是缩写逻辑卷管理器。它将多个分区分组到一个逻辑卷中,以更好地管理磁盘空间。 只读存储器您的 CD-ROM 或 DVD-ROM 驱动器是否名为“sr0”。
如何检测使用的内核版本?
您可以通过在终端中输入以下命令来检测当前正在使用的内核:
uname -a
那么这意味着我的 /boot 分区已完全满了?
事实上,你的启动分区已经完全满了,这将阻止 ubuntu 安装新版本的内核。
我的问题是:我可以安全地删除所有旧内核版本(未使用的版本)以释放 /boot 中的空间吗?
您可以尝试从系统中删除旧的软件包,这应该会从引导分区中释放旧的内核。在终端中输入此命令,提供管理员密码,然后回答“y”以删除旧软件包:
sudo apt autoremove
这将安全地删除旧的内核版本并更新您的启动选项和 initram-fs。
答案2
如果 apt 不起作用尝试,dpkg -l 'linux-[ihs]*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\([-0-9]*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo dpkg -P
除了当前正在运行的内核之外,这还会清除每个带有标头的内核。如果您不确定您可以先查看dpkg -l 'linux-[ihs]*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\([-0-9]*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'
哪些软件包将被清除
答案3
我确定 Ubuntu 方式是使用 GUI 包管理器,但我只是在命令行上执行。
首先,准确找出安装的软件包名称 -
dpkg -l | grep linux-image
找出实际运行的内核
uname -a
然后使用
sudo apt-get autoremove PackageName
其中 PackageName 是您要删除的内核映像包的名称 - 它可能类似于 linux-image-4.4.0-21-generic。这将删除内核映像(您的 /boot 目录文件)、/lib/modules/kernel_version 目录结构、内核头包等。根据需要重新配置 grub 等。