我正在使用 Ubuntu 10.10 - Maverick Meerkat。我的根分区太小,无法将这两个文件放在 / 上。有人能就如何做到这一点提出建议吗:
“”为大型可移动目录(如 home、var 或 usr)创建一个新分区。然后我将目录 rsync 到新分区并挂载它。“””
有一个类似的主题如何更改软件中心的默认安装路径?,但由于我对 ubuntu 还很陌生,所以我很难找到解决方案。
我想将 /usr 和 /var 移动到与 /home 相同的分区上,但我不想为每个分区创建单独的分区。对于移动 /home,我使用了这个解决方案:https://help.ubuntu.com/community/Partitioning/Home/Moving#Different_filesystems_on_the_same_disk 我认为我需要在我的 fstab 中添加标签,有人能告诉我这是否是一个好主意,或者给出一个更好的主意吗?
答案1
既然您说不想移动分区,那么您可以从实时 CD 中执行此操作:
挂载您的根分区和主分区(我假设分别是 /dev/sda1 和 /dev/sda2;使用 GParted 检查以确保)以及
cd
安装的根目录:sudo mount /dev/sda1 /mnt sudo mount /dev/sda2 /mnt/home cd /mnt
将目录移动到您想要的位置(正如您所说的,在 /home 上):
sudo mkdir -p home/outside_stuff sudo mv var usr home/outside_stuff
现在,您有两个选项。选择其中一个:
使用符号链接。这是最简单的方法,但不太可靠:
sudo ln -s home/outside_stuff/* .
绑定挂载目录:
创建挂载点:
sudo mkdir -p var usr
添加以下内容
/etc/fstab
:/home/outside_stuff/var /var none bind /home/outside_stuff/usr /usr none bind
chroot
到您的系统并测试它:for i in sys proc dev; do sudo mount --bind "/$i" "/mnt/$i"; done sudo chroot /mnt mount -a # hopefully there'll be no errors mount # you should see entries for /var and /dev exit
重启:
sudo reboot
答案2
您要做的是启动实时 CD,创建新的分区。
我假设你的 ubuntu 根分区位于 /dev/sad1,并且你在 /dev/sda2 和 /dev/sda3 为 /usr 和 /var 创建了两个新分区 ext4
然后,你将所有内容挂载到工作目录中,例如/mnt/root
,,/mnt/usr
和/mnt/var
sudo mkdir /mnt/{root,usr,var}
sudo mount /dev/sda1 /mnt/root
sudo mount /dev/sda2 /mnt/usr
sudo mount /dev/sda3 /mnt/var
然后移动文件
sudo mv /mnt/root/usr/* /mnt/usr/
sudo mv /mnt/root/var/* /mnt/var/
然后编辑 /mnt/root/etc/fstab 并添加新分区
使用以下命令列出您的分区blkid
sudo blkid
然后您编辑/mnt/root/etc/fstab
# command line
sudo -e /mnt/root/etc/fstab
# graphical
gksu gedit /mnt/root/etc/fstab
添加新分区
UUID=uuid_sda2_here /usr ext4 errors=remount-ro 0 2
UUID=uuid_sda3_here /var ext4 errors=remount-ro 0 2
现在链接将起作用,mount --bind 也将不起作用。您可以使用诸如 LVM 之类的工具。
如果这不是您想要的,请澄清您的问题。如果不移动数据,您就无法节省磁盘空间,因此同步不会节省磁盘空间。您无法使用链接或挂载绑定向根分区添加空间,您需要使用 LVM。