可能重复:
如何将 /usr 移动到新分区?
我使用 Ubuntu 11.04。
df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 9611492 7553508 1569744 83% /
none 1665832 644 1665188 1% /dev
none 1672460 1436 1671024 1% /dev/shm
none 1672460 648 1671812 1% /var/run
none 1672460 0 1672460 0% /var/lock
/dev/sda3 67285624 19445284 44422384 31% /home
我开始觉得 / 分区有点不够了。我的磁盘上有很多可用空间。
我想在不丢失数据的情况下将 /usr 和 /opt 挂载到新分区上。但我不知道该怎么做。
你能帮助我吗。
答案1
最简单的方法可能是从 Live CD 启动,即从安装启动并选择测试 Ubuntu。
启动后,打开终端并为 /usr 和 /opt 创建新分区,尽管其中可能没有太多内容。这些分区需要是逻辑分区,因此您需要先创建一个扩展分区 (/dev/ada4)。
您将需要几个临时挂载点,因此我通常在 /mnt 中创建子目录(例如 /mnt/root、/mnt/usr 和 /mnt/opt)复制现有内容,然后编辑现有的 fstab(位于 /mnt/root/etc/fstab 中)以挂载新的 /usr 和 /opt。
命令顺序是(未经测试!!!)在 Live CD 终端中大致如下:
# fdisk /dev/sda
.... create new partitions. 4 (extended) 5 (to hold /usr) 6 (to hold /opt)
# mkdir /mnt/root
# mkdir /mnt/usr
# mkdir /mnt/opt
# mount /dev/sda1 /mnt/root
# mount /dev/sda5 /mnt/usr
# mount /dev/sda6 /mnt/opt
.... copy data
# cp -dpRxv /mnt/root/usr/* /mnt/usr
# cp -dpRxv /mnt/root/opt/* /mnt/opt
.... edit /mnt/root/etc/fstab
.... i.e. add extra lines to mount /dev/sda5 on /usr and /dev/sda6 on /opt
此时,您可以从 /dev/sda 启动并检查一切是否正常,但您会注意到我们尚未从 /dev/sda1 中删除 /usr 和 /opt 的旧内容;我们只是将新目录挂载在旧目录上,从而隐藏了它们的内容。如果不起作用,您只需撤消 fstab 中的编辑(删除或注释掉您添加的额外行),您就可以回到开始的位置而不会丢失任何内容。
最后,当你检查一切正常后,再次启动 Live CD,将 /dev/sda1 挂载到 /mnt 上,并删除 /usr 和 /opt 的旧内容
# rm -Rvf /mnt/usr/* /mnt/opt/*
虽然我过去曾重组过磁盘,但总是存在输入错误命令并抹去一些数据的危险。在这种情况下,由于您从未挂载 /dev/sda3,所以应该没问题,但我不能提供任何保证,在尝试任何事情之前,您应该仔细检查您是否理解每个步骤!
答案2
据我所知,有两种方法可以做到这一点:
首先是使用 Ubuntu Live CD 或 USB,从中启动您的笔记本电脑,然后在从该 CD/USB 启动的操作系统中使用 GParted 卸载您的 /dev/sda3 分区,以便您可以调整其大小以占用整个硬盘空间。
第二种方法是将您需要的所有数据复制并粘贴到外部硬盘上,然后使用 Ubuntu 安装(例如实时 CD/USB)并重新安装 Ubuntu 11.04(或者 11.10 或 12.04,如果您想升级)并合并分区,这样您就填满了整个硬盘空间。
由于 Ubuntu 在分区方面表现良好,因此这两个选项都是安全的,然而修改磁盘分区时,通常总是强烈建议事先备份这样,即使出现问题,您也肯定不会丢失任何数据。
希望我的回答对您有所帮助,如果您不确定我上面解释的任何内容,请随时发表评论以询问我更多详细信息,因为我可能没有充分解释所有内容。[此外,我假设当您说要创建新分区时,您的意思是您希望能够使用硬盘驱动器末尾的所有可用磁盘空间,而不是为 /usr 和 /opt 创建单独的分区,因为之后访问会相当麻烦]