Linux磁盘概念及其管理工具fdisk:http://www.linuxidc.com/Linux/2016-08/134664.htm

一、基本介绍

  1. Linux来说无论有几个分区,分给哪一个目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux种每个分区都是用来组成整个文件系统的一部分。
  2. Linux采用了一种叫做‘载入’的处理方法,它的整个文件系统种包含了一整套的文件和目录,且将一个分区和一个目录链接起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
  3. MBR分区表最多支持4个分区,4个Primary主分区或3个Primary主分区和一个Extended扩展分区,如果要把磁盘分区成四个分区: P+P+P+P 或者 P+P+P+E
  4. 上面的情况中,3P+E只有三个主分区可用,因为Extended不能被格式化作为数据访问的分区,还需要进一步分区成逻辑分区(Logical Partion),扩展分区一块磁盘只能有一个逻辑分区没有数量限制,默认盘号从sdb5开始。
  5. 硬盘说明: Linux硬盘分IDE硬盘和SCSI硬盘,目前主要是SCSI硬盘。对于IDE硬盘,驱动器标识符为‘hdx~’,其中‘hd’表名分区所在设备的类型为IDE硬盘。‘x’为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),‘~’代表分区,前四个分区用数字1到4标识,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2为第二个IDE硬盘上的第二个主分区或扩展分区。对于SCSI硬盘则标识为’sdx~’,SCSI硬盘用’sd’来表示分区所在设备的类型,其余则和IDE硬盘表示方法一样。

二、经典的挂载案例:

  1.  虚拟机添加硬盘 :在虚拟机菜单中选择【设置】,然后设备列表例添加硬盘,然后一路【下一步】,中间选择磁盘大小的地方修改,最后选择【完成】。然后重启系统后才能识别硬盘。
  2.  分区:使用fdisk工具对硬盘进行分区。
  3.  格式化:使用mkfs工具把分区格式化为ext4类型。
  4.  挂载:创建挂载点,将分区挂载到挂载点上。
  5.  卸载:取消分区于挂载点目录的联系。
  6.  永久性挂载

三、实际操作

1.在虚拟中添加一块硬盘,并重启系统。

2. 使用lsblk  或 lsblk -f 查看设备挂载情况。此时已经可以看到磁盘已经添加到系统中了,对应目录为/dev/sdb

[root@localhost ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0   17G  0 part /
└─sda3   8:3    0    2G  0 part [SWAP]
sdb      8:16   0    4G  0 disk 
sr0     11:0    1  4.3G  0 rom  
[root@sgcEdu01 ~]# lsblk -f
NAME   FSTYPE  LABEL           UUID                                 MOUNTPOINT
sda                                                                 
├─sda1 ext4                    f697799f-dd31-4dea-aff0-df2918adec22 /boot
├─sda2 ext4                    b1ef1368-3350-42c9-9d3b-e3095bb399f4 /
└─sda3 swap                    4af7ce89-c362-4f53-a8f5-3990e169fa4f [SWAP]
sdb                                                                 
sr0    iso9660 CentOS 7 x86_64 2018-11-25-23-54-16-00        

  使用fdisk工具对磁盘sdb进行分区,这里将磁盘分成4个区(P+P+E(L+ L))。主分区最多创建4个,分区号1-4。首先创建主分区。

 1 [root@localhost ~]# fdisk /dev/sdb
 2 欢迎使用 fdisk (util-linux 2.23.2)。
 3 
 4 更改将停留在内存中,直到您决定将更改写入磁盘。
 5 使用写入命令前请三思。
 6 
 7 Device does not contain a recognized partition table
 8 使用磁盘标识符 0xe90cbf80 创建新的 DOS 磁盘标签。
 9 
10 命令(输入 m 获取帮助):m  //输入m 获取全部命令
11 命令操作
12    a   toggle a bootable flag
13    b   edit bsd disklabel
14    c   toggle the dos compatibility flag
15    d   delete a partition
16    g   create a new empty GPT partition table
17    G   create an IRIX (SGI) partition table
18    l   list known partition types
19    m   print this menu
20    n   add a new partition
21    o   create a new empty DOS partition table
22    p   print the partition table
23    q   quit without saving changes
24    s   create a new empty Sun disklabel
25    t   change a partition's system id
26    u   change display/entry units
27    v   verify the partition table
28    w   write table to disk and exit
29    x   extra functionality (experts only)
30 
31 命令(输入 m 获取帮助):n  //输入 n 创建新分区
32 Partition type:
33    p   primary (0 primary, 0 extended, 4 free)
34    e   extended
35 Select (default p): p  //输入p 创建主分区
36 分区号 (1-4,默认 1):1  //输入 1 
37 起始 扇区 (2048-8388607,默认为 2048)://回车,使用默认扇区2048
38 将使用默认值 2048
39 Last 扇区, +扇区 or +size{K,M,G} (2048-8388607,默认为 8388607):+1G //输入+1G ,设置1G大小
40 分区 1 已设置为 Linux 类型,大小设为 1 GiB
41 
42 命令(输入 m 获取帮助):n //输入n,再创建一个1G大小主分区
43 Partition type:
44    p   primary (1 primary, 0 extended, 3 free)
45    e   extended
46 Select (default p): p
47 分区号 (2-4,默认 2):2
48 起始 扇区 (2099200-8388607,默认为 2099200):
49 将使用默认值 2099200
50 Last 扇区, +扇区 or +size{K,M,G} (2099200-8388607,默认为 8388607):+1G
51 分区 2 已设置为 Linux 类型,大小设为 1 GiB
52 
53 命令(输入 m 获取帮助):p  //输入p,查看分区情况
54 
55 磁盘 /dev/sdb:4294 MB, 4294967296 字节,8388608 个扇区
56 Units = 扇区 of 1 * 512 = 512 bytes
57 扇区大小(逻辑/物理):512 字节 / 512 字节
58 I/O 大小(最小/最佳):512 字节 / 512 字节
59 磁盘标签类型:dos
60 磁盘标识符:0xe90cbf80
61 
62    设备 Boot      Start         End      Blocks   Id  System
63 /dev/sdb1            2048     2099199     1048576   83  Linux
64 /dev/sdb2         2099200     4196351     1048576   83  Linux
65 
66 命令(输入 m 获取帮助):w  //输入w ,从内存写入,保存分区。
67 The partition table has been altered!
68 
69 Calling ioctl() to re-read partition table.
70 正在同步磁盘。

 创建扩展分区,再逻辑分区

 1 [root@localhost ~]# fdisk /dev/sdb
 2 欢迎使用 fdisk (util-linux 2.23.2)。
 3 
 4 更改将停留在内存中,直到您决定将更改写入磁盘。
 5 使用写入命令前请三思。
 6 
 7 
 8 命令(输入 m 获取帮助):n  //创建扩展分区
 9 Partition type:
10    p   primary (2 primary, 0 extended, 2 free)
11    e   extended
12 Select (default p): e
13 分区号 (3,4,默认 3):4
14 起始 扇区 (4196352-8388607,默认为 4196352):
15 将使用默认值 4196352
16 Last 扇区, +扇区 or +size{K,M,G} (4196352-8388607,默认为 8388607):
17 将使用默认值 8388607
18 分区 4 已设置为 Extended 类型,大小设为 2 GiB
19 
20 命令(输入 m 获取帮助):n   //创建逻辑分区5
21 Partition type:
22    p   primary (2 primary, 1 extended, 1 free)
23    l   logical (numbered from 5)
24 Select (default p): l
25 添加逻辑分区 5
26 起始 扇区 (4198400-8388607,默认为 4198400):
27 将使用默认值 4198400
28 Last 扇区, +扇区 or +size{K,M,G} (4198400-8388607,默认为 8388607):+1G
29 分区 5 已设置为 Linux 类型,大小设为 1 GiB
30 
31 命令(输入 m 获取帮助):n   //创建逻辑分区6
32 Partition type:
33    p   primary (2 primary, 1 extended, 1 free)
34    l   logical (numbered from 5)
35 Select (default p): l
36 添加逻辑分区 6
37 起始 扇区 (6297600-8388607,默认为 6297600):
38 将使用默认值 6297600
39 Last 扇区, +扇区 or +size{K,M,G} (6297600-8388607,默认为 8388607):
40 将使用默认值 8388607
41 分区 6 已设置为 Linux 类型,大小设为 1021 MiB
42 
43 命令(输入 m 获取帮助):w
44 The partition table has been altered!
45 
46 Calling ioctl() to re-read partition table.
47 正在同步磁盘。

lsblk查看磁盘信息

 1 [root@localhost ~]# lsblk
 2 NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
 3 sda      8:0    0   20G  0 disk 
 4 ├─sda1   8:1    0    1G  0 part /boot
 5 ├─sda2   8:2    0   17G  0 part /
 6 └─sda3   8:3    0    2G  0 part [SWAP]
 7 sdb      8:16   0    4G  0 disk 
 8 ├─sdb1   8:17   0    1G  0 part 
 9 ├─sdb2   8:18   0    1G  0 part 
10 ├─sdb4   8:20   0    1K  0 part 
11 ├─sdb5   8:21   0    1G  0 part 
12 └─sdb6   8:22   0 1021M  0 part 
13 sr0     11:0    1  4.3G  0 rom  

 3.格式化磁盘——使用mkfs工具将分区格式化为ext4文件格式

[root@localhost ~]# mkfs -t ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

    其他三个分区也这样做。

4.创建挂载点目录,将分区挂载。

[root@localhost /]# mkdir newdisk1
[root@localhost /]# mount /dev/sdb1 newdisk1

 使用df -TH 命令查看分区挂载情况

[root@localhost /]# df -TH /newdisk1
文件系统       类型  容量  已用  可用 已用% 挂载点
/dev/sdb1      ext4  1.1G  2.7M  951M    1% /newdisk1

5.卸载分区

  umonut  设备名称  或者  挂载目录

  例如:umonut  /dev/sdb1 或者  umount /newdisk1

6.永久性挂载

  系统重启之后又要手动挂载怎么办?

  很简单,我们设置一下就OK了

  vim  /etc/fstab

  编辑文件 将/dev/sdb1   /newdisk1  ext4   defaults 0 0  加入即可

 

 提示:如果编辑fstab文件时写错了,重启机器后无法正常登录,屏幕出现紧急模式EmergencyMode提示时。可以重新输入root密码进入系统,将fstab文件重新修改正确即可重启正常登录。