今天要做一个虚拟机添加硬盘的实验。

实验简述:在现有Ubuntu 12.04虚拟机基础上添加一块8G的虚拟硬盘。该硬盘分成两个区:3G和5G,对应的挂载点为~/docs和~/photos,用来保存个人文档和家庭照片。

本实验的目的是熟悉Linux下硬盘的分区,创建文件系统,挂载分区等一系列的操作。

实验过程

  1. 打开Ubuntu 12.04虚拟机,添加一个8G的虚拟硬盘。

  2. 启动虚拟机,进入终端,查看系统当前的文件系统情况。当前系统应该可以看到有两块硬盘,第一块是sda,第一块是sdb。

ls /dev/sd*
查询结果:

从上面的查询结果我们可以找到sda和sdb这两块硬盘。但是,我们也发现了一个问题:为什么sda被分成了三个区,我记得明明只有一个主分区的?用fdisk /dev/sda显示分区表看看:

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000afcb0

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 40894463 20446208 83 Linux
/dev/sda2 40896510 41940991 522241 5 Extended
/dev/sda5 40896512 41940991 522240 82 Linux swap / Solaris
原来多出来的是Ubuntu安装程序自动创建的扩展分区sda2和交换分区sda5。

我们用fdisk /dev/sdb看看新硬盘的分区情况:

Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x25a3446b

Device Boot Start End Blocks Id System
分区表是空的,说明还没有分区存在。

  1. 用fdisk将sdb硬盘分成两个区:3G和5G。

Disk /dev/sdb: 8589 MB, 8589934592 bytes
86 heads, 1 sectors/track, 195083 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x25a3446b

Device Boot Start End Blocks Id System
/dev/sdb1 2048 16777215 8387584 5 Extended
/dev/sdb5 4096 6295551 3145728 83 Linux
/dev/sdb6 6297600 16777215 5239808 83 Linux
分区完毕,使用ls /dev/sdb*命令就可以在/dev目录下找到我们的新分区了。

  1. 使用mke2fs创建文件系统,这里两个分区都使用ext4文件系统。

sudo mke2fs -t ext4 /dev/sdb5
sudo mke2fs -t ext4 /dev/sdb6

  1. 挂载两个新分区到~/docs和~/photos目录,同时修改两个挂载点所有者,这样才有权限方便写入。

cd ~
mkdir docs
mkdir photos
sudo mount /dev/sdb5 docs
sudo mount /dev/sdb6 photos
sudo chown -R amonest:amonest docs
sudo chown -R amonest:amonest photos

  1. 最后,我们要想办法让这两个新分区在启动后可以自动挂载。使用mount命令只是在本次登陆挂载了分区,但电脑一重新启动,还需要再次挂载。/etc/fstab文件记录了电脑启动后需要自动挂载的分区信息,要实现自动挂载,只需要向/etc/fstab文件增加记录就可以。关于fstab的更详细信息请参考《/etc/fstab文件简要说明》。

我们先用blkid命令查到新分区的UUID:

Shell$ sudo blkid
/dev/sda1: UUID="4c298c2c-2b21-417e-b7ab-4ba4a64c3e1e" TYPE="ext4"
/dev/sda5: UUID="ff694e58-0b7e-473e-9d02-c91404202b8d" TYPE="swap"
/dev/sdb5: UUID="f23cd423-9a4d-4e4e-aa9d-4220f1383760" TYPE="ext4"
/dev/sdb6: UUID="202ce7e5-8afd-4926-b3b6-c052770e8640" TYPE="ext4"
然后打开/etc/fstab文件,将下面的两行内容添加到最后:

UUID=f23cd423-9a4d-4e4e-aa9d-4220f1383760 /home/amonest/docs ext4 defaults 0 0
UUID=202ce7e5-8afd-4926-b3b6-c052770e8640 /home/amonest/photos ext4 defaults 0 0
重启电脑,检查看两个新分区有没有被自动挂载。