我对文件系统了解一点,但了解不多。我只对 LVM 有一个大概的了解,尽管我显然将其用作根分区。
我的电脑里有一块 1TB 的硬盘。我运行的是 Ubuntu 14.04。
今天我去安装一些更新,并被告知分区空间不足/boot
。
我使用实时 CD 中的 GUI 释放了一些空间gparted
,但我注意到我的根文件系统显示为已满:
然而根据df
:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/ubuntu--vg-root 954367812 10720604 895145040 2% /
none 4 0 4 0% /sys/fs/cgroup
udev 2995912 12 2995900 1% /dev
tmpfs 608016 1312 606704 1% /run
none 5120 0 5120 0% /run/lock
none 3040072 17312 3022760 1% /run/shm
none 102400 52 102348 1% /run/user
/dev/sda2 241965 118221 111252 52% /boot
/dev/sda1 523248 3428 519820 1% /boot/efi
tmpfs 3040072 4 3040068 1% /var/lib/polkit-1/localauthority/90-mandatory.d
这是怎么回事?为什么gparted
认为我的分区已满?
我还有一个问题。有人知道/boot/efi
和/boot
分区之间的区别是什么吗?我是否需要它们两者?
答案1
AFH 和 Romeo Ninov 之间基本上有答案,但需要将它们捆绑在一起。
您的/boot
分区是独立的,因为这本质上是使用 LVM(它不是文件系统,而是逻辑卷的容器,逻辑卷本身包含文件系统)所必需的。LVM 分区可以调整大小;请参阅这里了解所需内容的概要。不过,我不确定我是否会去那里……
您报告说,您的更新过程抱怨 244 MiB/boot
分区中的空间不足,但该分区目前仅使用了 52%。定期创建单独/boot
分区的发行版通常会将它们的大小设为您的分区的两倍,但您的更新会尝试将那里使用的空间量增加近一倍,这仍然很奇怪。我正在输入此信息的 Ubuntu 14.04 安装在 上仅使用了 80 MiB /boot
。因此,您可能需要检查那里有什么。输入ls -lh /boot
。这是我在系统上看到的内容:
$ ls -lh /boot
total 70M
-rw-r--r-- 1 root root 1.2M Feb 14 17:06 abi-3.13.0-45-generic
-rw-r--r-- 1 root root 1.2M May 4 01:09 abi-3.13.0-52-generic
-rw-r--r-- 1 root root 162K Feb 14 17:06 config-3.13.0-45-generic
-rw-r--r-- 1 root root 162K May 4 01:09 config-3.13.0-52-generic
drwxr-xr-x 10 root root 4.0K Dec 31 1969 efi
drwxr-xr-x 3 root root 1.0K May 7 11:30 extlinux
drwxr-xr-x 5 root root 1.0K Mar 12 20:08 grub
drwxr-xr-x 2 root root 1.0K Feb 14 17:06 grub.bak
-rw-r--r-- 1 root root 20M Feb 26 18:39 initrd.img-3.13.0-45-generic
-rw-r--r-- 1 root root 20M May 7 11:28 initrd.img-3.13.0-52-generic
drwx------ 2 root root 12K Feb 14 17:05 lost+found
-rw-r--r-- 1 root root 173K Feb 14 17:06 memtest86+.bin
-rw-r--r-- 1 root root 174K Feb 14 17:06 memtest86+.elf
-rw-r--r-- 1 root root 175K Feb 14 17:06 memtest86+_multiboot.bin
-rw-r--r-- 1 root root 227 Feb 14 17:06 refind_linux.conf
-rw------- 1 root root 3.3M Feb 14 17:06 System.map-3.13.0-45-generic
-rw------- 1 root root 3.3M May 4 01:09 System.map-3.13.0-52-generic
-rw------- 1 root root 5.6M Feb 14 17:06 vmlinuz-3.13.0-45-generic
-rw-r--r-- 1 root root 5.6M Feb 19 21:38 vmlinuz-3.13.0-45-generic.efi.signed
-rw------- 1 root root 5.6M May 4 01:09 vmlinuz-3.13.0-52-generic
-rw-r--r-- 1 root root 5.6M May 10 21:36 vmlinuz-3.13.0-52-generic.efi.signed
这是相当典型的情况(尽管比某些系统的情况要多一点)。如果您看到的不同类型的文件比我在这里显示的要多,则可能是某些东西添加了一些新的和无关的内容,这些文件可能是需要删除的——但如果您不理解它们,请在删除它们之前寻求建议。
另一件需要检查的事情是多余的内核。这些文件的名称以 开头vmlinuz
。(它们与initrd.img
AFH 让您搜索的文件配对。)我自己的示例显示了四个内核文件,但这些文件实际上只是两个内核的签名和未签名版本。如果您看到三个以上的内核版本(每个版本可能都以签名和未签名的形式提供),请尝试以下命令:
sudo apt-get autoremove
此命令将从系统中删除除原始内核和两个最新内核之外的所有内核,这将释放一些空间。
如果您确实需要调整分区大小,缩小 EFI 系统分区(ESP;/dev/sda1
在您的情况下)并扩展/boot
到该空间可能比弄乱 LVM 设置更安全。我不建议调整大小超过 200 MiB,您应该确实备份两个分区在继续操作之前,请先在可移动媒体上进行以下操作,因为这两个分区对于启动都至关重要,因此如果出现问题,您将陷入大麻烦。另外,请注意,某些 EFI 可能对其 ESP 上的 FAT 文件系统很挑剔。一些(主要是 2012 年之前的旧 EFI)对小于 512 MiB 的 FAT32 ESP 反应不佳。因此,如果您尝试以这种方式调整大小,请先缩小 ESP,然后进行测试启动。如果可以启动,请扩展/boot
到释放的空间并再次尝试启动。如果缩小 ESP 后遇到问题,请使用紧急系统将其扩展回其原始大小。
答案2
我发现结果与gparted
和df
不同,但没有达到这种程度:我怀疑gparted
是误解了你的lvm2
内容。
您的问题是它/boot
安装在一个单独的 0.25GB 驱动器上,这就是空间不足的原因。我不确定您是如何陷入这种状态的,或者如何摆脱它:也许grub
无法从lvm2
文件系统很好地启动。
首先要做的最简单的事情是删除除当前和前一个内核之外的所有内核(您永远不需要多个备份内核)。输入:
ls -l /boot/initrd*
uname -a
这将显示所有已安装的内核版本和正在运行的内核。然后,您需要删除除最后两个之外的所有版本。我更喜欢使用synaptic
以下方法:选择Installed
并在搜索框中依次设置要删除的每个版本的数字部分,然后键入Ctrl-a
以全选,然后右键单击并选择Mark for Complete Removal
(确保您不会删除当前版本!)。浏览完要删除的每个内核后,单击Apply
。
在安装了两个内核的 Ubuntu 15.04 上,我的/boot
目录大小刚好超过 120MB,因此当您安装第三个内核时,应该有两个版本的空间/dev/sda2
(并且请记住每次执行此操作时都删除最旧的版本)。
如果这不能解决你的问题,那么你有两个选择:-
/dev/sda2
通过移动 与 之间的边界来增加 的尺寸/dev/sda3
。- 在互联网上搜索
grub lvm2
,并按照那里的建议进行操作。
回答您的辅助问题,/boot
是内核启动文件所在的位置,这通常与位于同一文件系统中/
,但grub
需要确定 EFI 启动文件所在的位置,这可以通过在中安装 EFI 启动分区来完成/boot/efi
。换句话说,/boot/efi
是单独文件系统的安装点,但它本身很少/boot
成为安装点。除非您使用旧版 BIOS 进行启动,否则您需要两者。
答案3
因为在屏幕上你看到的是 PV(物理卷),而不是文件系统。整个 pv 被分配给 vg。执行
df
您将看到文件系统的状态