移动linux根文件系统与调整其分区大小

时间:2012-02-27 09:56:50

标签: ubuntu resize filesystems grub disk-partitioning

我需要为意外安装到错误分区的根文件系统获取更多空间。给定下面的分区,我可以将sda1缩小到1个字节然后增加sda6以占用所有释放的空间,然后使用swapon / dev / sda5和swapoff / dev / sda7(尽管将sda7作为交换保留没有坏处)。

备用是将所有sda6转换为sda1,从set root ='(hd0,6)'编辑sda1 / boot / grub / grub.cfg以设置root ='(hd0,0)',然后重新安装grub所以它可以在sda1中找到grub.cfg。

sda5和sda6是偶然创建的,可以放弃。

是否有任何特殊因素表明我应该选择一种方法而不是另一种方法?

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       72474   582142975   83  Linux
/dev/sda2           72474       72962     3915777    5  Extended
/dev/sda5           72800       72962     1296384   82  Linux swap / Solaris
/dev/sda6           72474       72778     2442240   83  Linux THIS IS WHERE THE ROOT IS
/dev/sda7           72778       72800      171008   82  Linux swap / Solaris THIS IS THE PRESENT SWAP

Ubuntu 10.04.1服务器(无X)。

此致 亚历山大

1 个答案:

答案 0 :(得分:1)

您可以使用这两个选项,我会说您应该选择哪个选项导致您喜欢的分区号和位置的最终配置,即您希望root最终位于sda1或sda6上吗?

警告:您的第一个选项无法正常显示。该选项主要是通过将其起始块移回磁盘的开头来增长sda6。但是总是希望在它们所在的分区的开头找到文件系统,因此你必须移动当前占据柱面72474到72778的根文件系统数据,以便它占据柱面1到305。你已经省略了这一步。

在开始之前,要遵循以下两条黄金法则:

  • 与行业合作,从不与行业合作。分区不必在柱面边界上开始和结束,因此如果您在柱面中工作,最终可能会指定错误的偏移。
  • 从网络启动的恢复环境或initramfs执行所有操作,如果这就是你所拥有的。非常小心,您可以从正在运行的系统中完成它,但您可以自己使用它!

当然,无论你做什么,这都是一个微妙的操作。我没有测试过我在这里建议的任何东西,一个错误可能会花费你所有的数据。

话虽如此,这是修订后的选项#1。

  1. 使用dd将sda6的内容复制到sda1上。
  2. 删除sda1和sda6
  3. 创建一个新的sda6,它以旧sda1的起始偏移量开始,并以旧sda6的结束偏移量结束。