为什么我的根分区在gparted中显示为full?


1

我对文件系统了解不多,但不是很多。我只是对LVM的概念有一个大概,尽管显然我正在使用它作为我的根分区。

我的电脑里只有一个1TB硬盘。我运行Ubuntu 14.04。

我今天去安装了一些更新,并被告知我没有足够的空间 /boot 划分。

我去了一些空间 gparted 来自Live CD的GUI,但我注意到我的根文件系统显示为已满:

enter image description here

根据 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 分区是,如果我需要它们两个?


如果您要做的就是腾出空间 /boot,你应该用输出问一个新问题 ls -lR /boot
Daniel B

Answers:


2

在他们之间,AFH和罗密欧尼诺夫基本上都有答案,但它需要捆绑在一起。

您的 /boot 分区是分开的,因为这基本上是使用LVM所必需的(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文件系统很挑剔。一些(大多数是旧的EFI,从2012年之前)将对FAT32 ESP小于512 MiB做出反应。因此,如果您尝试以这种方式调整大小,首先缩小ESP,然后进行测试启动。如果可以启动,请展开 /boot 进入释放空间并再次尝试启动。如果在收缩ESP后出现问题,请使用紧急系统将其扩展回原始尺寸。


2

我找到了结果 gparteddf 不同,但不是这个程度:我怀疑 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 (并记住每次执行此操作时删除最旧的版本)。

如果这不能解决您的问题,那么您有两种选择: -

  1. 增加大小 /dev/sda2 通过移动它和它之间的边界 /dev/sda3
  2. 在互联网上搜索 grub lvm2,并按照那里的建议。

要回答你的辅助问题, /boot 是内核启动文件所在的位置,通常位于与文件系统相同的文件系统中 /但是 grub 需要确定EFI启动文件所在的位置,这可以通过在中安装EFI启动分区来完成 /boot/efi。换一种说法, /boot/efi 是单独的文件系统的挂载点,但它是不寻常的 /boot 本身就是一个装载点。除非您使用传统BIOS启动,否则您需要两者。


1

因为在屏幕上你会看到PV(物理卷),而不是文件系统。并且整个pv被分配给vg。执行

df

你会看到文件系统的状态


啊,我怎么能改变这个,所以我可以重新调整分区的大小?
Luke

您应该使用一些实时分发并且不安装此lv您应该缩小文件系统,然后调整lv的大小。然后您将能够创建新的逻辑卷。如果你想调整sda1的大小,恐怕这是不可能的(简单):(
Romeo Ninov

澄清一下:所以我可以调整那个PV上的LV的大小,如果我想要的话,可以在它旁边制作另一个LV,但是我无法调整物理卷的大小。所以我不能让/ boot更大。这就是你在说什么?我可以迁移/启动所以它本身就是PV中的LV吗?还是必须在一个完全独立的分区?
Luke

1
实际上,您可以使用调整PV的大小 pvresize。但是,这只会移动分区的末尾。生成的可用空间不能用于现有空间 /boot 划分。
Daniel B

1
当然可以移动它,但移动分区是危险的,因为它涉及移动所有数据。这也需要很长时间。
Daniel B
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.