在控制台上增加根大小,缩小 /home 大小

在控制台上增加根大小,缩小 /home 大小

我有一个 Debian 系统,它是在很久以前安装的,使用安装程序建议的默认分区大小。结果发现 root 和 /usr 分区太小,不符合我的需要。例如,我没有足够的空间来安装新内核。

磁盘布局如下:

# df|grep sdb
/dev/sdb1               264445    235155     15637  94% /  
/dev/sdb9            472007120 292643816 155386696  66% /home
/dev/sdb8               381138     27042    334418   8% /tmp
/dev/sdb5              4806904   4276636    286084  94% /usr
/dev/sdb6              2885780    845500   1893692  31% /var

# fdisk -l /dev/sdb

Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c26ca

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1          34      273073+  83  Linux
/dev/sdb2              35       60801   488110927+   5  Extended
/dev/sdb5              35         642     4883728+  83  Linux
/dev/sdb6             643        1007     2931831   83  Linux
/dev/sdb7            1008        1053      369463+  82  Linux swap / Solaris
/dev/sdb8            1054        1102      393561   83  Linux
/dev/sdb9            1103       60801   479532186   83  Linux

我想缩小 /home 分区(位于磁盘的“末尾”),方法是从开头切出大约 10 GB,然后给根分区和 /usr 各 5 GB。这意味着移动 /dev/sdb[2-8] 以便为根分区和 /usr 腾出更多空间。

该系统仅用于控制台。

有没有办法进行这些更改而不丢失 root、/usr、/var 和 /home 上的数据?

答案1

您的分区布局类似于此(如果我错了请纠正我):

| root | usr | var | tmp | home |
       |        extended        |

要想做你想做的事,你必须:

  • 将 /home 缩小到 10GB(或者可能向右移动 10GB);
  • 向右移动10GB /var、/tmp 和 /usr;
  • 将 /usr 扩大至 5GB;
  • 将逻辑分区缩小至5GB;
  • 增长 / 5GB

我不会说这是不可能的,但我发现有很多方法可能会出错。

我遇到了类似的情况,决定将所有内容备份到外部磁盘并重新创建所有内容。如果您有足够的资源,我建议您这样做,因为这样可以大大降低数据丢失的风险,并且可以节省大量时间(移动/缩小分区可能需要一些时间)。

如果你无法像我一样在终端系统中运行,我认为最好的工具是parted。它允许你调整分区大小和移动分区。

笔记:如果您选择重新创建所有内容,我强烈建议您使用 LVM。在这种情况下,就无需移动分区,并且扩展/缩小会更加容易和安全。

编辑

正如 bodhi 所说,如果你可以使用带有 gparted(包含在 Ubuntu 中)的 Live CD/USB,那么你的任务将变得容易得多。GParted 允许你通过拖动来调整分区大小和移动分区。

相关内容