有没有人看到这个问题可以帮助我解决它?我有一个预装的服务器(Debian GNU/Linux 7.6(喘息)),其中磁盘空间的分区非常糟糕......:-( 硬盘很大,但它是这样分区的:
rootfs 323M 320M 0 100% /
udev 10M 0 10M 0% /dev
tmpfs 406M 1012K 405M 1% /run
/dev/disk/by-uuid/aa26072b-e0f4-4962-ba44-76d5e65346de 323M 320M 0 100% /
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 2,4G 0 2,4G 0% /run/shm
/dev/sda9 531G 6,4G 498G 2% /home
/dev/sda8 368M 11M 339M 3% /tmp
/dev/sda5 8,3G 2,2G 5,8G 28% /usr
TARGET SOURCE FSTYPE OPTIONS
/ /dev/disk/by-uuid/aa26072b-e0f4-4962-ba44-76d5e65346de ext4 rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=order
├─/sys sysfs sysfs rw,nosuid,nodev,noexec,relatime
├─/proc proc proc rw,nosuid,nodev,noexec,relatime
│ └─/proc/sys/fs/binfmt_misc binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime
├─/dev udev devtmpfs rw,relatime,size=10240k,nr_inodes=214285,mode=755
│ └─/dev/pts devpts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000
├─/run tmpfs tmpfs rw,nosuid,noexec,relatime,size=414996k,mode=755
│ ├─/run/lock tmpfs tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k
│ └─/run/shm tmpfs tmpfs rw,nosuid,nodev,noexec,relatime,size=2507080k
├─/home /dev/sda9 ext4 rw,relatime,user_xattr,barrier=1,data=ordered
├─/tmp /dev/sda8 ext4 rw,relatime,user_xattr,barrier=1,data=ordered
└─/usr /dev/sda5 ext4 rw,relatime,user_xattr,barrier=1,data=ordered
/opt
链接到/home/opt
并且/var
链接到/home/var
...
opt -> /home/opt
var -> /home/var
但运行apt-get upgrade
或安装某些软件时总是失败...那么我可以以任何方式扩展根分区或以某种方式创建指向某些 moutpoint 的符号链接吗?非常感谢您的帮助。
答案1
为了恢复此安装,我建议:
- 下载并启动安息吧 Linux(11.7是我比较喜欢的版本,虽然有13.7 也可用);如果您在启动 ISO 时遇到问题,请记住,对于 RIP Linux 来说,将内核和 rootfs.cgz 作为 initrd 启动就足够了,即使从现有的安装中启动也非常简单
- 调整
gparted
/home 分区的大小,为新的根分区留出空间 - 创建新的根分区,例如 ext4 文件系统
- 用于
rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /mnt/your-old-root/* /mnt/your-new-root/
克隆根分区 - 编辑文件以正确安装
/mnt/your-new-root/etc/fstab
新/
分区/home
- 编辑引导加载程序(例如 GRUB/GRUB2)内核参数(读取
root=UUID=xxxxx
)以与新根分区的新 UUID 匹配(在 中查找ls -l /dev/disk/by-uuid/
) - 重新启动系统,然后验证它是否使用新的根分区
笔记:由于您将进行的操作的关键性质,您应该考虑进行备份并总是当您有疑问时参考官方文档。否则东西会坏掉。
答案2
这篇文章有点旧,但我遇到了完全相同的问题(Debian 也是如此)并以 root 身份运行以下命令解决了它:
apt-get clean
在我的例子中它释放了 2G 的 rootfs(天知道为什么)。
我从以下链接得到了这个提示,它看起来非常全面:
答案3
运行du -x /
以查看根文件系统上占用空间的内容。
320MB 不算多,但只要安装了单个内核包就应该没问题。删除除您要重新引导到的版本之外的所有内核版本。
运行dpkg -l 'linux-image-*'
看看安装了哪些内核包。uname -r
显示您现在正在运行的版本,但如果自上次重新启动后升级了内核,您将需要卸载它并保留最新版本。您可以卸载正在运行的内核;这将阻止您加载模块,因此在加载模块后您可能无法连接新的外围设备、使用新的网络功能等。
您仍然应该扩大根分区,因为在升级过程中安装两个内核软件包是很常见的(正在运行的内核加上最新版本;一旦您知道新版本可以工作,重新启动后删除旧内核)。
如果删除内核软件包还不够,该怎么做将取决于占用空间的内容。/bin
、 、/etc
和中的相当一部分内容/lib
是/sbin
挂载其他分区所必需的,因此您不能只是将这些目录移动到另一个文件系统。在紧要关头,移动/lib/modules
可能没问题(通常情况下不会,但在许多配置中都是如此,只要您将其移动到的文件系统不需要与根分区不同的驱动程序)。
答案4
只是一个想法。 rootfs 分区上可能存在隐藏文件。在 mnt 上重新挂载 rootfs 并检查/mnt/home
、/mnt/var
、/mnt/opt
、/mnt/usr
、/mnt/dev
、/mnt/sys
、/mnt/proc
和的大小/mnt/run
。/mnt/tmp
mount --bind / /mnt
du -s /mnt/home /mnt/var /mnt/opt /mnt/usr /mnt/dev /mnt/proc /mnt/sys /mnt/run /mnt/tmp
这些目录大部分应该是空的(它们的内容位于其他文件系统上)。我检查了我的系统,实际上/mnt/dev
有一些设备(它们在启动时可能是必需的)。
如果这不是问题,请运行
du -s /mnt/*
作为一个非常基本的参考,我的笔记本电脑上的值是:
7564 bin
8944 sbin
151284 lib
4 lib64
6928 etc
18288 boot