为虚拟机添加虚拟磁盘

下面主要是关于虚拟磁盘添加到虚拟机之后,如何分区和格式化的过程。

磁盘分区

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
evans@master:/dev$ sudo fdisk -l
 
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 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: 0x000b5cfd
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    81788927    40893440   83  Linux
/dev/sda2        81790974    83884031     1046529    5  Extended
/dev/sda5        81790976    83884031     1046528   82  Linux swap / Solaris
 
Disk /dev/sdb: 64.4 GB, 64424509440 bytes
255 heads, 63 sectors/track, 7832 cylinders, total 125829120 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: 0x00000000
 
Disk /dev/sdb doesn't contain a valid partition table

/dev/sdb 就是新增的磁盘,上面还没有任何分区信息,下面来着手分区。由于是第二块磁盘,且我的需求也比较简单,直接在上面建立一个分区就可以了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
evans@master:/dev$ sudo fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xf1dfadb5.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
 
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
 
# 查看已经的分区信息,现在还没有,所以下面的列表也是空的
Command (m for help): p
 
Disk /dev/sdb: 64.4 GB, 64424509440 bytes
255 heads, 63 sectors/track, 7832 cylinders, total 125829120 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: 0xf1dfadb5
 
   Device Boot      Start         End      Blocks   Id  System
 
# 建立新分区
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
 
# 先了一个主分区,开始和结束的扇区用的都是默认值,直接回车就好了
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-125829119, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-125829119, default 125829119):
Using default value 125829119
 
# 分区建立好后,再次查看分区信息,列表中就多了一项 /dev/sdb1
Command (m for help): p
 
Disk /dev/sdb: 64.4 GB, 64424509440 bytes
255 heads, 63 sectors/track, 7832 cylinders, total 125829120 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: 0xf1dfadb5
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   125829119    62913536   83  Linux
 
# 将分区信息写入磁盘。如果不做这一步就直接退出的话,以上操作将全部无效。
Command (m for help): w
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
Syncing disks.

完成分区操作后,我们再来看看磁盘上的变化:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
evans@master:/dev$ sudo fdisk -l
 
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 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: 0x000b5cfd
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    81788927    40893440   83  Linux
/dev/sda2        81790974    83884031     1046529    5  Extended
/dev/sda5        81790976    83884031     1046528   82  Linux swap / Solaris
 
Disk /dev/sdb: 64.4 GB, 64424509440 bytes
128 heads, 39 sectors/track, 25206 cylinders, total 125829120 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: 0xf1dfadb5
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   125829119    62913536   83  Linux

最后一行,表明分区信息已经写入成功。第一将使用 fdisk -l 时,显示的信息表示 /dev/sdb 上没有有效的信息,这次有了。分区完成后,接着就开始格式化磁盘。

磁盘格式化

查看已有磁盘的格式,为了保持一致,新磁盘也采用同样的格式

1
2
3
4
5
6
7
evans@master:/dev$ df -T
Filesystem     Type     1K-blocks     Used Available Use% Mounted on
/dev/sda1      ext4      40251776 30332612   7874492  80% /
udev           devtmpfs   2053336        4   2053332   1% /dev
tmpfs          tmpfs       824260      840    823420   1% /run
none           tmpfs         5120        0      5120   0% /run/lock
none           tmpfs      2060648     1412   2059236   1% /run/shm

已有磁盘 /dev/sda1 用的是 ext4 ,新磁盘也采用同样的格式。

1
sudo mkfs -t ext4 /dev/sdb1

格式化完成后,磁盘就准备就绪了。但是这个磁盘必需“加载”后,才能够被使用。感觉就像是,在一个孤岛上建立一个房子,但人们却无法去使用。加载的过程,就如果是将孤岛与大陆连接起来。

加载磁盘

先临时加载磁盘,非常简单

1
2
sudo mkdir /android
sudo mount /dev/sdb1 /android

好了,加载完成。现在,在 /android 目录下建立的所有文件,都将被存储在新的磁盘上。但是一旦系统重启,你又得重新加载一次了。如果觉得麻烦,那么就往下看看怎么自动加载。

自动加载磁盘

自动加载是指在系统启动后,由操作系统来自动完成磁盘的加载。你的第一块磁盘 /dev/sda1 就是这样被加载的,安装操作系统时,这一步已经由安装程序顺便做了,现在我们自己来做。当然,过程也是简单的,只需要修改一下/etc/fstab 。

查看磁盘的UUID

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
evans@master:~$ sudo df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        39G   29G  7.6G  80% /
udev            2.0G   12K  2.0G   1% /dev
tmpfs           805M  844K  805M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G  1.4M  2.0G   1% /run/shm
/dev/sdb1        60G  180M   56G   1% /home/evans/codebase/android   ## 记下路径
 
evans@master:~$ sudo blkid
/dev/sda1: UUID="6314c61b-4ba2-43b6-933a-8575f69f93b5" TYPE="ext4"
/dev/sda5: UUID="5609fe6e-3a96-4fa5-924e-be18161f439c" TYPE="swap"
/dev/sdb1: UUID="842afa50-6a3c-4910-862d-c662c37bf081" TYPE="ext4"   ## 记下UUID
 
evans@master:~$ sudo vi /etc/fstab
 
  9 # / was on /dev/sda1 during installation
 10 UUID=6314c61b-4ba2-43b6-933a-8575f69f93b5 /               ext4    errors=remount-ro 0       1
 
# 将第10行复制然后再粘贴,再对其进行修改。
# 需要修改的内容有两处
# 一处是UUID,用上面的UUID进行替换
# 二是路径,将 / 替换为上面的自己的路径
 
  9 # / was on /dev/sda1 during installation
 10 UUID=6314c61b-4ba2-43b6-933a-8575f69f93b5 /               ext4    errors=remount-ro 0       1
 11
 12 # /home/evans/codebase/android on /dev/sdb1 during installation
 13 UUID=842afa50-6a3c-4910-862d-c662c37bf081 /home/evans/codebase/android               ext4    errors=remount-ro 0       1
原文地址:https://www.cnblogs.com/ungshow/p/3514942.html