笔者通过实验,总结了添加新硬盘挂载新硬盘硬盘扩容的一些方法,仅供大家做个参考。
一:首先介绍硬盘扩容的方法:
1、vmware提供一个命令行工具,vmware-vdiskmanager.exe,位于vmware的安装目录下,比如
C:/Program Files/VMware/VMware Workstation/vmware-vdiskmanager.exe.
在windows的cmd窗口中,转到vmware的安装目录
即:cd C:/Program Files/VMware/VMware Workstation/
vmware-vdiskmanager.exe 可以查看帮助
2. 对于扩容,可以输入下列命令:
vmware-vdiskmanager -x 4Gb "D:/VMware/WinXP/myLinux.vmdk"
参数"-x"表示要扩展虚拟机硬盘空间,紧随其后的数字是要扩展到的大小(本例为扩展到4GB,这是一个磁盘总量,包含了原先的磁盘容量)。
最后是指定要操作的虚拟机磁盘的具体文件,要是路径名中有空格,必须以双引号括起来。按回车键开始执行,执行完毕,退出命令提示符窗口,
重启VMware,会发现虚拟机硬盘空间已变成4GB了。
网上的说明大都到这一步就结束了,其实不然。大家重启虚拟机后,发现虚拟机的硬盘是变成4GB了,但进入linux系统后,用"df -ah"查看发现硬盘空间还是原先那么大。
虽然已经扩大了磁盘,但是由于还没有经过分区,指定文件系统,所以linux操作系统无法识别(其实就差不多于你的硬盘虽然大了,但是你并没有对其进行分区是一个道理)。接下来大家进行分区处理。
3. 分区:
fdisk命令: fdisk -l :打印当前的磁盘分区表,这时大家可以看到磁盘的总量的确增加到4GB了,但是分区只有以前的那几个原有的分区。
键入命令:fdisk /dev/sda “sda就是经过扩容的硬盘,为SCSI硬盘,IDE类型硬盘对应为hda,是对该硬盘进行操作”
键入 : m “ 列出fdisk的帮助”
大家在这里是要添加一个新分区,即将扩容出来的那部分做成一个新分区,这样才能被操作系统挂载识别。
键入: n ” 命令n用于添加新分区"
此时,fdisk会让你选择添加为逻辑分区呢(编号从5开始)还是主分区(编号1到4)。选择主分区吧,则键入p;选择逻辑分区键入l。
大家选择主分区于是:
键入: p " 选择创建主分区"
此时,fdisk会让你选择主分区的编号,一旦已经有了主分区sda1,sda2,那么编号就选3,即要创建的该分区为sda3.
键入: 3
此时,fdisk又会让你选择该分区的开始值这个就是分区的Start 值(start cylinder);这里最好直接按回车,
一旦您输入了一个非默认的数字,会造成空间浪费;
此时键入:w "保存所有并退出,分区划分完毕"
大家现在还不能用这个分区,为什么? 没格式化呀,呵呵!
4. 格式化该新添加的分区:
键入:mkfs -t ext3 /dev/sda3
或者 mkfs.ext3 /dev/sda3 格式化指定的分区,依次类推,现在的系统大部分都是 ext3 格式,一旦你需要其它的,可以查看mkfs的帮助。
此时大家就可以使用该新增分区啦:
5、挂载该分区:
手动挂载,则键入:mount /dev/sda3 /home/work/ "表示将该新分区挂载到/home/work/这个目录接下来"
开机自动挂载,则修改/etc/fstab文件,在这个文件里面添加一行:
/dev/sda3 /home/work ext3 defaults, 0 1 "关于该文件的格式,以后写文章讨论^_^"
以后每次开机都会将该分区挂在大work目录接下来了。
到这里就可以使用该新加分区啦。
二:另外一种方法就是首先在虚拟机上添加一块硬盘,然后挂载。这样就差不多于又买了个硬盘,可以缓解磁盘空间紧张的问题了。
1、启动虚拟机,选择"Edit virtual machine settings",点按钮"adding",按照向导默认添加一块磁盘,一般都是SCSI设备。 指定硬盘容量,然后重启进入系统。
root用户操作:
2、 fdisk -l 会看到有一块新的设置,一旦你先前有一块硬盘(sda1, sda2...),新加的这块应该是(/dev/sdb)。
看到就说明系统已经识别出这块硬盘了,接下来大家给这块硬盘分区,格式化。
fdisk /dev/sdb (当然一旦你添加的IDE设置,会是 hdx) x 代表数字,1到4指主分区编号,5以上指逻辑分区。具体的资料可以在网上搜到。
3、分区格式化:
操作和上面的分区格式化大致相同,只需注意把/dev/sda 改成/dev/sdb,后面的操作也都一致。
虚拟机Ubuntu空间不够了,需要增加硬盘空间,用Vmware给ubuntu添加新硬盘。
步骤如下:
1 在Vmware中关闭Ubuntu虚拟机,在设置中,添加新的硬件设备,选择Hard Disk。(这里一旦不关闭ubuntu系统就不能增加新的硬件设备) 之后点击下一步,选择硬盘类型,可以选择IDE,或是SCSI,这里大家选择SCSI,下一步,选择虚拟新硬盘的位置,大家将之命名为Ubuntu2.vmdk,下一步,设定硬盘大小,我这里设定为5G,并选择Allocate all disk space now,不选这项,刚开始,硬盘比较小,但是随着硬盘读写访问,虚拟硬盘文件会越来越大。选择该项后,虚拟硬盘就固定为所选的5G空间,不会再增大了。之后,点击 Finish,开始创建新硬盘。
2 启动Ubuntu,root用户登录。
在终端输入:fdisk -l ,可以看到
Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000af383
Device Boot Start End Blocks Id System
/dev/sda1 * 1 1244 9992398+ 83 Linux
/dev/sda2 1245 1305 489982+ 5 Extended
/dev/sda5 1245 1305 489951 82 Linux swap / Solaris
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
Disk /dev/sdb doesn't contain a valid partition table
这里可以看到/dev/sdb 就是大家新添加的硬盘,大家需要给新的硬盘分区。
在终端输入:fdisk /dev/sdb
之后键入:m,可以看到帮助信息,
键入:n,添加新分区
键入:p,选择添加主分区
键入:l,选择主分区编号为1,这样创建后的主分区为sdb1
之后,fdisk会让你选择该分区的开始值和结束值,直接回车
最后键入:w,保存所有并退出,完成新硬盘的分区。
3 格式化磁盘
在终端输入:mkfs -t ext3 /dev/sdb1
用ext3格式对/dev/sdb1 进行格式化
4 挂载该分区:
手动挂载:
在终端输入:mkdir /data ,创建新的硬盘的挂载点
在终端键入:mount /dev/sdb1 /data ,将该新分区挂载到/data/这个目录下
开机自动挂载
修改/etc/fstab文件,添加如下行:
/dev/sdb1 /data ext3 defaults, 0 1
顺便记录一下/etc/fstab文件的格式:
其实这个文件里面存放的是系统中的文件系统信息。当正确的设置了该文件,大家就可以通过mount /任意目录 命令来加载一个文件系统,比如说大家新添加了一块硬盘分区,那么大家就可以加入如下命令:
/dev/sdb1 /mnt/mydisk ext2 default 0 0
那一旦大家使用USB设备的话,可以加上接下来一行:
usbfs /proc/bus/usb usbfs defaults 0 0
但是上边USB的例子只有在你把相关的支持编译到内核中时才能工作。
现在大家在说说上面那些参数的意思。
在/etc/fstab里面的注释是这样的:
<file system> <mount point> <type> <options> <dump> <pass>
file system 也就是大家要挂在的源
mount point 就是大家要挂在到哪个目录
type 是挂在系统的类型,比如vfat,ext3,tmpfs,sysfs等等。
options 指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。对于大多数系统使用defaults就可以满足需要。其他常见的选项包括:
选项 含义
ro 以只读模式加载该文件系统
sync 不对该设备的写操作进行缓冲处理,这可以防止在非正常关机时情况下破坏文件系统,但是却降低了计算机速度
user 允许普通用户加载该文件系统
quota 强制在该文件系统上进行磁盘定额限制
noauto 不再使用mount -a命令(例如系统启动时)加载该文件系统
dump
在 Linux 当中,可以利用 dump 这个指令来进行系统的备份的。而 dump 指令则会针对 /etc/fstab 的设定值,去选择是否要将该 partition 进行备份的动作呢! 0 代表不要做 dump 备份, 1 代表要进行 dump 的动作。 2 也代表要做 dump 备份动作, 不过,该 partition 重要度比 1 小。
pass
开机的过程中,系统预设会以 fsck 检验大家的 partition 内的 filesystem 是否完整 (clean)。 不过,某些 filesystem 是不需要检验的,例如虚拟内存 swap ,或者是特殊档案系统, 例如 /proc 与 /sys 等等。所以,在这个字段中,大家可以设定是否要以 fsck 检验该 filesystem 喔。 0 是不要检验, 1 是要检验, 2 也是要检验,不过 1 会比较早被检验啦! 一般来说,根目录设定为 1 ,其它的要检验的 filesystem 都设定为 2 就好了。