虚拟机环境,Linux系统下新添加了一块硬盘
1. 虚拟机--设置--添加,选择硬盘添加
2. 首先为磁盘创建文件系统:mkfs.ext3 /dev/sdb
3. 创建挂载点:mkdir /mnt/sdb
4. 挂载:mount /dev/sdb /mnt/sdb
5. fdisk -l
发现有问题:
Disk /dev/sdb doesn't contain a valid partition table
6. fdisk /dev/sdb
跟着向导一步步做下去(如果不知道该输入什么,就输入“m”并回车,可以打印出菜单):
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
(后面的菜单省略,太长了)
这里我们要添加一个新的分区,所以输入“n”:
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-14098, default 1): (此处直接回车)
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-14098, default 14098): (此处直接回车)
Using default value 14098
Command (m for help): p
Disk /dev/sdb: 115.9 GB, 115964116992 bytes
255 heads, 63 sectors/track, 14098 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 14098 113242153+ 83 Linux
现在可以写入分区表了,所以输入“w”:
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
现在再fdisk -l,结果正常。
二、硬盘格式化 | Format hard disk
1、显示硬盘及所属分区情况。在终端窗口中输入如下命令
:
-t ext4 表示将分区格式化成ext4文件系统类型。
三、挂载硬盘分区 | Mount hard disk partition
1、显示硬盘挂载情况。在终端窗口中输入如下命令
:
在终端窗口中输入如下命令 :
指定硬盘分区文件系统类型为ext4 ,同时将 /dev/sdb 分区挂载到目录 /devdata。
再次在终端窗口中输入如下命令 :
新硬盘分区已经挂载,如下图最下面的红色方框内容。
UUID=37eaa526-5d96-4237-8468-603df5216ce9 /devdata ext4 defaults 0 3
附录1:fdisk命令详解 | Appendix part 1: fdisk command syntax
fdisk 命令的语法如下:
fdisk -l [-u] [device...]
fdisk -s partition...
fdisk -v
- -b 指定每个分区的大小。也可以执行fdisk device(如:fdisk /dev/sdb)后,在系统提示时指定。
- -l 列出指定的外围设备的分区表状况。如果仅执行 fdisk -l ,系统会列出已知的分区。
- -u 搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址。
- -s 将指定的分区的大小输出到标准输出上,单位为区块。
- -v 显示fdisk的版本信息。
附录2:mkfs命令详解 | Appendix part 2: mkfs command syntax
mkfs 命令的语法如下:
- -V 显示简要的使用方法。
- -t 指定要建立何种文件系统,如:ext3, ext4。
- fs 指定建立文件系统时的参数。
- -v 显示版本信息与详细的使用方法。
附录3:mount命令详解 | Appendix part 3: mount command syntax
mkfs 命令的语法如下:
mount [-lhv]
- -a 加载文件/etc/fstab中设置的所有设备。
- -f 不实际加载设备。可与-v等参数同时使用以查看mount的执行过程。
- -F 需与-a参数同时使用。所有在/etc/fstab中设置的设备会被同时加载,可加快执行速度。
- -t vfstype 指定加载的文件系统类型,如:ext3, ext4。
- -L label 给挂载点指定一个标签名称。
- -l 显示分区的label。
- -h 显示帮助信息。
- -v 显示mount的版本信息。
- device 要挂载的分区或文件。如果device是一个文件,挂载时须加上 -o loop参数。
- dir 分区的挂载点。
附录4:fstab配置详解 | Appendix part 4: fstab detail configuration
/etc/fstab 中一共有6列:
- file system:指定要挂载的文件系统的设备名称(如:/dev/sdb)。也可以采用UUID,UUID可以通过使用blkid命令来查看(如:blkid /dev/sdb)指定设备的UUID号。
- mount point:挂载点。就是自己手动创建一个目录,然后把分区挂载到这个目录下。
- type:用来指定文件系统的类型。如:ext3, ext4, ntfs等。
- option dump:0表示不备份;1表示要将整个中的内容备份。此处建议设置为0。
- pass:用来指定fsck如何来检查硬盘。0表示不检查;挂载点为分区/(根分区)必须设置为1,其他的挂载点不能设置为1;如果有挂载ass设置成大于1的值,则在检查完根分区后,然后按pass的值从小到大依次检查,相同数值的同时检查。如:/home 和 /boot 的pass 设置成2,/devdata 的pass 设置成3,则系统在检查完根分区,接着同时检查/boot和/home,再检查/devdata。
Fdisk分区工具
1. Overview
*Fdisk是IBM的老牌分区工具,支持绝大多数操作系统,几乎所有的Linux操作系统都默认装有fdisk;包括在Linux Rescue模式下依然能够使用。
*fdisk是基于MBR的分区工具(是当年IMB设计给PC机来使用的),所以如果需要使用GPT,则无法使用fdisk进行分区
*只有超级用户权限(如root,Uid=0的;可以用在命令行中输入id来查询)才可以执行fdisk,因为命令都是咋/sbin下面,需要特权级的用户;
*使用su - 命令切换到Root用户
*fdisk分区后,需要使用partprobe(立即生效)让内核识别新的分区
2. Command Reference
*fdisk –l # 列出所有安装的磁盘及分区信息
*fdisk /dev/sdb #对目标磁盘进行分区操作
*partprobe #分区之后,让内核更新分区信息,否则系统需要restart后,内核才能识别新的分区
*/proc/partitions 文件夹(目录)也可以用来查看分区信息
2.1 命令fdisk -l的界面
上图sda disk information中对 255 heads,63 sectors/track,1958 cylinders的解析:
sda磁盘总共有1958个cylinder(柱面),每个cylinder(柱面)有63个sectors(扇区),每个sectors(扇区)有255个heads(磁头)
那么这块sda的总的磁头数量为:255*63*1958=31455270
因为一块磁盘的空间大小计算方式为:这块磁盘的总的磁头数量(Heads)*512bytes(因为每个磁头数量为512字节)
所以这块磁盘的空间为31455270*512=16105098240=16.1G
fdisk /dev/sdb后,按m,再按l(list know partition type),列出的分区类型
2.2 命令fdisk /dev/sdb的交互式界面:如下图
按m (for help)+Enter后的交互式界面,如下图
按n+Enter后(add a new partition),出现的交互式见面
按“P”后(创建主分区),出现的交互式界面如下图
Partition number按1后,出现如下图:Cylinder数从1-1044
输入分区大小为+2G后,如下图,也可以输入Cylinder数量,不过要计算一下,计算方法为要分配的容量如2G(2048000000bytes)=XCylinder*63sectors*255heads*512bytes