Thanks for: http://www.111cn.net/sys/Ubuntu/73675.htm 用 vagrant 本地虚拟了一个 Ubuntu,想把数据放到单独的磁盘里,查阅资料,下面把日志记录下来。
虚拟机里的新加磁盘类型是 VMDK ,动态分配大小,大小20G。
运行:
vagrant up
vagrant ssh
进入虚拟机!
一、查询现有硬盘情况
运行: sudo fdisk -l
运行 ll -h /dev/sd* 测试linux系统是否能找到挂载的未分区硬盘:
得到:
brw-rw---- 1 root disk 8, 0 4月 19 05:15 /dev/sda
brw-rw---- 1 root disk 8, 1 4月 19 05:15 /dev/sda1
brw-rw---- 1 root disk 8, 16 4月 19 05:15 /dev/sdb
Linux 硬盘识别:
2.6 kernel以后,linux会将识别到的硬件设备,在/dev/下建立相应的设备文件. 如: sda 表示第1块SCSI硬盘,第二块是sdb,以此类推 hda 表示第1块IDE硬盘(即连接在第1个IDE接口的Master口上) scd0 表示第1个USB光驱. 当添加了新硬盘后,在/dev目录下会有相应的设备文件产生.cciss的硬盘是个例外,它的 设备文件在/dev/cciss/目录下.
二、挂载硬盘
1. 创建未被挂载的磁盘分区
fdisk /dev/sdb
此时会进入到 Command 的状态,大概是这么操作的:
- 输入
m查看帮助 - 输入
p查看/dev/sdb分区的状态 - 输入
n创建sdb这块硬盘的分区- 选
p primary=>输入p Partition number=>分一个区所以输入1- 其他的默认即可
- 选
- 输入
w保存并退出 Command 状态。
下面全是命令行下的操作过程:
# 查看帮助信息
Command (m for help): m
Command action
a toggle a bootable flag 将分区设置为启动区
b edit bsd disklabel 编辑bsd的disklabel
c toggle the dos compatibility flag 设置该分区为dos分区
d delete a partition 删除分区
l list known partition types 列出已知的分区类型
m print this menu 打印帮助列表
n add a new partition 创建新分区
o create a new empty DOS partition table
p print the partition table查看分区信息
q quit without saving changes 退出不保存
s create a new empty Sun disklabel
t change a partition's system id改变分区类型
u change display/entry units
v verify the partition table
w write table to disk and exit 保存退出
x extra functionality (experts only)
# 查看sdb这块硬盘的分区
Command (m for help): p
Disk /dev/sdb: 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: 0xf74052cc
Device Boot Start End Blocks Id System
# 创建sdb这块硬盘的分区
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-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):
Using default value 41943039
#查看创建sdb硬盘的分区
Command (m for help): p
Disk /dev/sdb: 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: 0xf74052cc
Device Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 83 Linux
#保存退出,分区创建结束
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
fdisk的操作告一段落,现在可以再用 sudo fdisk -l 查看硬盘信息就可以看到sdb1新分区了:
vagrant@vagrant-ubuntu-trusty-64:~$ sudo fdisk -l
Disk /dev/sda: 42.9 GB, 42949672960 bytes
4 heads, 32 sectors/track, 655360 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: 0x000020ea
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 83886079 41942016 83 Linux
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
213 heads, 34 sectors/track, 5791 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: 0xf74052cc
Device Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 83 Linux
2. 格式化未被挂载的磁盘
sudo mkfs.ext3 /dev/sdb1
下面是具体过程:
vagrant@vagrant-ubuntu-trusty-64:~$ sudo mkfs.ext3 /dev/sdb1
mke2fs 1.42.9 (4-Feb-2014)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242624 blocks
262131 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
3. 创建目录并挂载
sudo mkdir /data1
sudo mount /dev/sdb1 /data1
三、开机自动挂载
因为mount挂载在重启服务器后会失效,所以需要将分区信息写到/etc/fstab文件中让它永久挂载:
e2label /dev/hda6 先查看需要挂载硬盘分区的labl
/home
e2label /dev/hda6 home1 因为系统中已经有个/home的label了,所以这里要重新把/dev/hda6的label设置为home1
vi /etc/fstab
在尾部加上
/dev/sdb1 /home ext3 defaults 0 0
表示把新的硬盘分区挂载到 /home 这个目录
在修改 /etc/fstab 文件后,运行 mount -a 命令验证一下配置是否正确,否则错误配置 fstab 文件导致系统无法正常启动。如果系统无法正常启动,则输入root密码进入修复模式,关键的一步是重新 mount /(mount -n -o remount,rw /) 。如果没有此步操作,则文件系统处于只读状态,导致不能修改配置文件并保存,修复存在的问题。
重启系统
四、其他可能会用到的命令
sudo vi /etc/fstab
sudo umount /data1 #卸载磁盘到/data1的映射
sudo dd if=/dev/zero of=/dev/sdb 填零/dev/sdb
cat /proc/mounts 查看映射信息