Kernel

/ 上沒有足夠的空間來安裝新的核心更新

  • January 27, 2012

在最近的一次更新中,我收到了這個:

Installing: kernel-default-2.6.37.6-0.11.1 [error]
Installation of kernel-default-2.6.37.6-0.11.1 failed:
(with --nodeps --force) Error: Subprocess failed. Error: RPM failed:    installing package kernel-default-2.6.37.6-0.11.1.x86_64 needs 147MB on the / filesystem


Abort, retry, ignore? [a/r/i] (a): i
Installing: kernel-desktop-2.6.37.6-0.11.1 [error]
Installation of kernel-desktop-2.6.37.6-0.11.1 failed:
(with --nodeps --force) Error: Subprocess failed. Error: RPM failed:    installing package kernel-desktop-2.6.37.6-0.11.1.x86_64 needs 148MB on the / filesystem


Abort, retry, ignore? [a/r/i] (a): i
Installing: kernel-source-2.6.37.6-0.11.1 [error]
Installation of kernel-source-2.6.37.6-0.11.1 failed:
(with --nodeps --force) Error: Subprocess failed. Error: RPM failed:    installing package kernel-source-2.6.37.6-0.11.1.noarch needs 432MB on the / filesystem

我假設這意味著我的/分區需要一些空間。所以我檢查了大小/空間:

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              25G   24G  208M 100% /

怎麼/長得這麼大!?這是一種常見的情況嗎?是否有一個快速的技巧來釋放一些空間?我假設有些東西我沒有在那裡使用,並且在過去的一年裡我已經能夠輕鬆地更新核心——所以有些東西正在積累。

我寧願弄清楚我釋放了什麼(舊核心是否保留?)而不是重新分區我的整個驅動器來增長/

在進行以下任何更改之前進行備份

如果沒有備份或願意失去所有數據,請不要繼續操作。

跑步

du -sh /home

獲取 /home 目錄使用的大小。

如果它足夠大(>=4G),/home 是擁有自己分區的好選擇。

從 livecd 或 SystemRescueCd
引導 根據您的分區表類型(GPT 或 MBR),使用gdiskpartedfdisk

使用您喜歡的 fstype創建一個新的分區格式,

例如

mkfs.ext4 /dev/sda2
mkdir /mnt/os
mkdir /mnt/home
mount /dev/sda1 /mnt/os    # mount your OS, now all on /
mount /dev/sda2 /mnt/home  # mount newly formatted partion
cp -a /mnt/os/home/* /mnt/home/ # copy current /home data to new partition
cd /mnt/os/home                 # remove old home data, leaving mountpoint
rm -rf .

現在您需要 cd 到 /mnt/os/etc 並編輯 fstab 並添加

/dev/sda2 /home ext4 defaults 0 1

有不止一種方法可以做到這一點。根據您的經驗和技能,您可以通過 UUID 安裝(首選,但不是必需的)。

其他文件系統也可以這樣做,如果您安裝了很多 google 工具或 eclipse,它們會安裝在 /opt 中,並且它也是一個很好的候選者,可以放在自己的分區中。

如果你有很多分區,你會想要切換到 GPT 分區和/或 LVM。如果是這樣,請重新提出問題

引用自:https://unix.stackexchange.com/questions/30072