Debian – 在远程系统上调整root ext3分区的大小

我想调整(收缩)远程Debian 5.0系统的root ext3 fs分区。 没有LVM。

没有使用livecd可能吗? 例如通过自定义的initrd.img。

第二个问题 – 我可以让grub仅在第一次下一次重新引导时使用不同的选项,而不是在第二次和之后。

这当然是可能的。 你需要压缩根文件系统的唯一的东西是另一个启动到的根文件系统。

我不知道自定义的initrd.img是否足够。 (可能是,我很想听到一个办法。)

如果是我,我会在另一个分区上做一个最小的系统安装,只包含必要的工具。 你会重新启动到这个分区,并从那里调整你的主根分区的大小。 (如果您使用的是基于Debian的发行版,那么从Linux安装Linux的文章描述了一个很好的方法。

如果您的系统驱动器已满,但您拥有交换分区,则可能会暂时将其用作辅助根分区。 由于二级系统只需要基本系统,文件系统工具和SSH,它可以存在于一个非常小的分区上。 在设置此过程时,您的系统可能无需交换。


至于Grub,使用Grub v1,您可以使用命令行工具grub-set-default的Grub菜单命令default savedsavedefault N来设置一次性启动选项。 我在另一个答案中写了一个用Grub v1做启动的方法 。

短版本:这样设置你的/boot/grub/menu.lst

  default saved # boot entry 0 title Default boot root hd(0,0) kernel /boot/vmlinuz-2.6.xx UUID=xxxxxxx ro savedefault # boot entry 1 title Temp boot root hd(0,1) kernel /boot/vmlinuz UUID=yyyyyyyy ro savedefault 0 

Grub会默认启动“Default boot”项,如果你想重新启动进入“Temp boot”项,你可以运行grub-set-default 1然后重启。 重新启动将使用临时默认值,启动“Temp boot”项,并将“Default boot”项保存为下次重新启动。

使用Grub2,基本的想法是一样的,虽然configuration显然有点不同。 这个网站有很多关于Grub2的信息,并且报告说grub-set-default 可以在Grub2 grub-set-default 运行 。

我希望你可以把你需要的所有东西放到你的initrd中,然后卸载根目录(我把你通常在initrd中的所有东西放到ssh中,或者把ssh或者远程的,fs等工具),这样你就不用风险不大。

另一件事是,如果你搞砸了会发生什么? 增加的停机时间可能会使另一个计划成为更好的select,例如向系统添加磁盘。