Chinaunix首页 | 论坛 | 博客
  • 博客访问: 254871
  • 博文数量: 55
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 419
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-06 20:22
文章分类

全部博文(55)

文章存档

2014年(55)

我的朋友

分类: 嵌入式

2014-04-04 19:49:20

ubuntu12.04硬盘扩容
 
笔者通过实验,总结了添加新硬盘 挂载新硬盘 硬盘扩容的一些方法,仅供大家做个参考
一:首先介绍硬盘扩容的方法:
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 
/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 是挂在系统的类型,比如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 就好了。
 
 
作者 zhengmeifu
阅读(2138) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~