在安装Debian时,由于预计错了将来要使用的容量,因此编译文件时提示容量不够了,这可极坏了我,搜索网络发现,没有好的解决办法。因此就想捣鼓一下无损容量扩充。
条件:
1 VMWare 虚拟机 10G 磁盘
2 Debian 7.0
3 所有文件都在一个分区(也就是说/home , /var ,统统都是在 / )
4 要求无损扩充成20G磁盘
解决方法:
1 如果你使用了Windows + Deiban 的方式,那么这个方法也同样适合你,无非你就是要从Windows里割掉一块容量,再到Debian下扩展
2 首先使用VMWare 来对虚拟机进行扩展磁盘,这个操作在VMWare7 以后很方便啦,只要在虚拟机设置里点击磁盘,会有一个扩展的选项。(需要关闭虚拟机电源)
3 进入Debian,使用 fdisk -l 可以看到 /dev/sda 由10G已经变成了20G,但是看下面的分区还都是使用的10G时的结构。
4 接下来我们要将现在的所有分区统统删除,然后重新分区。不必担心统统删除分区会导致系统无法启动,因为我们改动的只是分区表而已。
fdisk /dev/sda
m (显示菜单,对应 menu)
p (显示当前的分区信息,注意看/dev/sda1 /dev/sda5,这些数字,一会要用)
d (删除开始,输入d,然后输入要删除的数字,我自己是要全部删除)
p (显示修改后的分区,应该是空的才对)
n (新建分区,对应New)
然后就是一路回车选择默认,就是全部磁盘。
p (再次显示磁盘分区是否就是自己想要的)
w (最后使用w保存)
q (退出fdisk)
这就OK啦,分区调整结束。其实上面的操作也适合你/home /var /tmp等等在不同分区的情况,只是稍微有点差别。同时,你也可以用来减小你的分区,无非就是在输入 n (新建)时调整一下而已。
5 如果这个时候,你按照系统的提示,重新启动,其实我们的操作室完全没有生效的,容量依然没有增加。因此我们就要用到一个脚本:
/etc/init.d/resize2fs_onec
#!/bin/sh
### BEGIN INIT INFO
# Provides: resize2fs_once
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5 S
# Default-Stop:
# Short-Description: Resize the root filesystem to fill partition
# Description:
### END INIT INFO
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Starting resize2fs_once" &&
resize2fs /dev/root &&
rm /etc/init.d/resize2fs_once &&
update-rc.d resize2fs_once remove &&
log_end_msg $?
;;
*)
echo "Usage: $0 start" >&2
exit 3
;;
esac
注意上面的红色字体,要指明你要重新分配的磁盘节点,我是要整个调整,所以我就是 /dev/root 啦。你可以再 df -h 中查看你使用的是哪个节点。
然后这还不够,还要赋予脚本启动权限和可执行权限。
chmod 777 /etc/init.d/resize2fs_once
update-rc.d resize2fs_once defaults
#不用担心,这个脚本启动后就自动删除啦。
6 OK,现在重启系统,应该发现你的磁盘已经容量有调整了,而且Debian还不需要重装。
评论
发表评论
读过之后是不是文思泉涌了?,快快让大家拜读一下你的高见吧~~~