前记:我是Dell Inspiron 1525的XP和Ubuntu 10.04 LTS的双系统,已经在Ubuntu下使用Gparted完成了对/dev/sda6的格式化。当前的/home所在分区为/dev/sda9。
在对/home进行分区扩大的过程中,我主要参考了两个帖子:
增多home空间,从Windows增加磁盘空间给Ubuntu。
其中,第二个帖子关于步骤二的第8步的命令
cd ~/chown name .dmrcchmod 644 .dmrc是错误的,如果这样并排的多个命令,linux系统会以空格为分隔符,将只会执行cd ~/(以第一条命令为例),对应的正确做法应该是(ref: 增多home空间):
cd /homechown name namechmod 755 name
7.修改权限:cd ~/chown name .dmrcchmod 644 .dmrc cd /homechown name namechmod 755 name但需要注意的是,两个帖子都没有强调,所有步骤需要开展的环境。如果是直接进入Ubuntu,进行mv /home /home.bak操作,则会一直提示device is busy。这是因为整个gnome-session都是在/home/username下进行的。所以需要做的是,转到recovery mode选择最下面的选项,在console下完成全部的操作。
需要多说的是/dev/hda10 /home auto rw 0 0。
文件行的格式模板为<file system>、<mount point>、<type> 、<options>、<dump>、<pass>
auto表示系统自动识别分区的格式,而因为知道sda6的类型,所以直接设定为ext4。
最后三个选项直接参考帖子fstab文件介绍,给出各自相关的解释:
4、<options>尽管最后没有能够增大/home的大小,但还是用到了一些有用的命令,介绍在附录之中。
这里用来填写设置选项,各个选项用逗号隔开。由于选项非常多,而这里篇幅有限,所以不再作详细介绍,如需了解,请用 命令 man mount 来查看。但在这里有个非常重要的关键字需要了解一下:defaults,它代表包含了选项rw,suid,dev,exec,auto,nouser和 async。
5、<dump>
此处为1的话,表示要将整个<fie sysytem>里的内容备份;为0的话,表示不备份。现在很少用到dump这个工具,在这里一般选0。
6、<pass>
这里用来指定如何使用fsck来检查硬盘。如果这里填0,则不检查;挂载点为 / 的(即根分区),必须在这里填写1,其他的都不能填写1。如果有分区填写大于1的话,则在检查完根分区后,接着按填写的数字从小到大依次检查下去。同数字 的同时检查。比如第一和第二个分区填写2,第三和第四个分区填写3,则系统在检查完根分区后,接着同时检查第一和第二个分区,然后再同时检查第三和第四个 分区。
附录:相关命令
1.
fuser -m /home
ps aux | grep XX(fuser 显示的PID)
上面的命令是负责显示有哪些进程正在使用/home路径,而ps命令行,是显示PID(进程ID)的具体内容。在得到具体的PID之后,可以使用kill终止进程,正如前面所述,如果直接进入Ubuntu环境,会一直有个gnome-session,如果你kill掉它,会重新让你登陆。回过头来,你必须进入recovery mode完成所有操作。
2.
cp -Rpv src/ dest/
cp命令的-R, -r, --recusive,不像ls命令,是没有区别的。而-p(和--preserve一样)的作用是保留mode, ownership和timestamps。 -v就是verbose打印正在进行的操作。这其中,p比较有用。这条命令也是我在gnome环境下,无解device is busy报错后,想出来将/home中的内容保存到移动硬盘上,再进行硬盘格式化,挂载所使用到的命令。最后这个方法在console下被放弃。
3.
ls -l /dev/disk/by-uuid
这条命令主要是查硬盘分区的UUID,为修改/etc/fstab挂载硬盘文件做准备。
《增加home空间》原帖
增加home空间
忘记备份了,结果我的home虽然加大了,但是里面的内容被格了。。又交了次学费。
1.备份 /home 目录
mv /home /home.bak
2.如果 /home 目录已经挂载的状态,首先卸载,然后删除:
umount /home
rm /home
3.重新创建 /home 目录:
mkdir /home
4.将刚才格式化的分区挂载到 /home 目录:
mount /dev/sda8 /home
5.还原 /home 下的所有文件:
cp -R /home.bak/* /home
6.设回原来的用户目录的权限:
chown -R name:name file
7.修改权限:
cd ~/
chown name .dmrc
chmod 644 .dmrc
cd /home
chown name name
chmod 755 name
8.编辑fstab,使新分进来的设备自动挂载:
vim /etc/fstab
编辑文件,/dev/hda10 /home auto rw 0 0
改为auto自动识别磁盘格式。 rw是可读可写。
最后reboot,进入系统查看 /home 和 / 的剩余空间。
《增加home空间》原帖
增加home空间
忘记备份了,结果我的home虽然加大了,但是里面的内容被格了。。又交了次学费。
1.备份 /home 目录
mv /home /home.bak
2.如果 /home 目录已经挂载的状态,首先卸载,然后删除:
umount /home
rm /home
3.重新创建 /home 目录:
mkdir /home
4.将刚才格式化的分区挂载到 /home 目录:
mount /dev/sda8 /home
5.还原 /home 下的所有文件:
cp -R /home.bak/* /home
6.设回原来的用户目录的权限:
chown -R name:name file
7.修改权限:
cd ~/
chown name .dmrc
chmod 644 .dmrc
cd /home
chown name name
chmod 755 name
8.编辑fstab,使新分进来的设备自动挂载:
vim /etc/fstab
编辑文件,/dev/hda10 /home auto rw 0 0
改为auto自动识别磁盘格式。 rw是可读可写。
最后reboot,进入系统查看 /home 和 / 的剩余空间。