大硬盘上的完整 rootfs,无法安装或更新软件

大硬盘上的完整 rootfs,无法安装或更新软件

有没有人看到这个问题可以帮助我解决它?我有一个预装的服务器(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

为了恢复此安装,我建议:

  1. 下载并启动安息吧 Linux11.7是我比较喜欢的版本,虽然有13.7 也可用);如果您在启动 ISO 时遇到问题,请记住,对于 RIP Linux 来说,将内核和 rootfs.cgz 作为 initrd 启动就足够了,即使从现有的安装中启动也非常简单
  2. 调整gparted/home 分区的大小,为新的根分区留出空间
  3. 创建新的根分区,例如 ext4 文件系统
  4. 用于rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /mnt/your-old-root/* /mnt/your-new-root/克隆根分区
  5. 编辑文件以正确安装/mnt/your-new-root/etc/fstab/分区/home
  6. 编辑引导加载程序(例如 GRUB/GRUB2)内核参数(读取root=UUID=xxxxx)以与新根分区的新 UUID 匹配(在 中查找ls -l /dev/disk/by-uuid/
  7. 重新启动系统,然后验证它是否使用新的根分区

笔记:由于您将进行的操作的关键性质,您应该考虑进行备份并总是当您有疑问时参考官方文档。否则东西会坏掉。

答案2

这篇文章有点旧,但我遇到了完全相同的问题(Debian 也是如此)并以 root 身份运行以下命令解决了它:

    apt-get clean

在我的例子中它释放了 2G 的 rootfs(天知道为什么)。

我从以下链接得到了这个提示,它看起来非常全面:

https://wiki.maemo.org/Free_up_rootfs_space

答案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

相关内容