我對檔案系統了解一點,但不是很多。我對 LVM 僅有一個大概的了解,儘管顯然這就是我用作根分區的東西。
我的電腦中有一個 1TB 硬碟。我運行 Ubuntu 14.04。
我今天去安裝一些更新,並被告知我的分割空間不足/boot
。
我用 Live 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 和羅密歐·尼諾夫基本上已經有了答案,但需要捆綁在一起。
您的/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 檔案系統可能很挑剔。少數(主要是 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
你會看到檔案系統的狀態