Day18-磁盘管理1(基本概念,fdisk分区命令的使用)

Hyman's Road of Learning Linux.

磁盘的基本概念

1.什么是磁盘

绝大多数人对硬盘都不陌生,一块小小的硬盘里,就可以存储海量的照片音乐和电影,尤其是我们喜爱的各类动作片。但如此小的空间,是如何储存那么多信息的呢?
每个硬盘中心都是一摞高速运转的圆盘,在圆盘上附着的一圈金属颗粒,每个金属颗粒都有自己的磁化程度,用于储存0和1。
当记录数据时,硬盘的磁头开始通电,形成强磁场,数据在磁场的作用下转变成电流,使颗粒磁化,从而将信息记录在圆盘上。
由海量颗粒组成的信息,就是我们存在硬盘里的数据。

磁盘的基本结构

1.什么是盘片:

硬盘一般有一个或多个盘片,每个盘片可以有两面,即第一个盘片的正面为0面,反面为1面然后依次类推。

2.什么是磁道:

每个盘片的盘面在出厂的时候被划分出了多个同心圆环,数据就存储在这样的同心圆环上面,我们将这样的圆环称为磁道(Track),每个盘面可以划分多个磁道。但肉业不可见。

3.什么是扇区:

在硬盘出厂时会对磁盘进行一次低格,其实就是再每个磁道划分为若干个弧段,每个弧段就是一个扇区 (Sector)。扇区是硬盘上存储的物理单位,现在每个扇区可存储512字节数据已经成了业界的约定。

4.什么是柱面:

柱面实际上就是我们抽象出来的一个逻辑概念,简单来说就是处于同一个垂直区域的磁道称为 柱面 ,即各盘面上面相同位置磁道的集合。这样数据如果存储到相同半径磁道上的同一扇区,这样可以实现并行读取,主要是减少磁头寻道时间。

5.什么是磁头:

读取磁盘磁道上面金属块,主要负责读或写入数据。

磁盘的预备知识

我们需要简单了解下磁盘的接口类型、磁盘涉及的相关术语、磁盘在Linux下的命名方式。

1.磁盘的接口类型

IDE,Scsi(已经被淘汰)

SATA III 与SAS(企业使用较多)

ssd的Msata接口为超极本设计,但是被m.2接口的SSD替代,而m.2接口(支持SATA、PCI-E双通道协议)

M.2接口是为超极本量身定做的新一代接口标准,以取代原来的mSATA接口。拥有更小巧的规格尺寸,还是更高的传输性能,M.2都远胜于mSATA。

2.磁盘的基本术语

尺寸: 2.5英寸 3.5英寸容量:KB MB GB TB PB EB转速:7500 15000 IOPS:每秒能够发生IO的次数。

3.磁盘在系统上的命名方式

设备名称 分区信息 设备类型
/dev/sda /dev/sda1 第一块物理磁盘第一分区
/dev/sdb /dev/sdb2 第二块物理磁盘第二个分区
/dev/vdd /dev/vdd4 第四块虚拟磁盘的第四个分区

PS1:系统中分区由数字编号表示,1~4留给主分区使用和扩展分区,逻辑分区从5开始。

PS2: 前面我们已经提到过MBR分区表只能分配4个主分区,但现在还有一种新型的分区表GPT,GPT支持分配128个主分区。注意MBR与GPT之间不能互转,会导致数据丢失。

磁盘基本分区Fdisk

1.添加一块小于2TB的磁盘进行使用,步骤如下:

1.给虚拟机添加一块新的硬盘
2.使用fdisk进行分区
3.使用mkfs进行格式化
4.使用mount进行挂载
PS: 生产分区建议,如无特殊需求直接使用整个磁盘即可,无需分区。
PS: 学习分区建议: 1P+1E(3L) 2P+1E(2L) 3P+1E(1L) (仅适用于练习)

2.具体命令步骤:

root@Hyman[15:57:09]~# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xa620416c.

Command (m for help): m         #输入m列出常用的命令
Command action
   a   toggle a bootable flag               #切换分区启动标记
   b   edit bsd disklabel                   #编辑sdb磁盘标签
   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     #创建新的Sun磁盘标签
   t   change a partitions system id       #修改分区ID,可以通过l查看id
   u   change display/entry units           #修改容量单位,磁柱或扇区
   v   verify the partition table           #检验分区表
   w   write table to disk and exit         #保存退出
   x   extra functionality (experts only)   #拓展功能

命令 解释 中文解释
a toggle a bootable flag #切换分区启动标记
b edit bsd disklabel #编辑sdb磁盘标签
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 #创建新的Sun磁盘标签
t change a partitions system id #修改分区ID,可以通过l查看id
u change display/entry units 修改容量单位,磁柱或扇区
v verify the partition table #检验分区表
w write table to disk and exit #保存退出
x extra functionality (experts only) #拓展功能

3.fdisk创建主分区

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):      #默认创建第一个主分区
First sector (2048-2147483647, default 2048):   #默认扇区回车
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2147483647, default 2147483647): +10G       #分配10G
Partition 1 of type Linux and of size 10 GiB is set

4.fdisk创建扩展分区

Command (m for help): n     #新建分区
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e   #创建扩展分区
Partition number (2-4, default 2): 
First sector (20973568-2147483647, default 20973568): 
Using default value 20973568
Last sector, +sectors or +size{K,M,G} (20973568-2147483647, default 2147483647):    #空间都给扩展分区
Using default value 2147483647
Partition 2 of type Extended and of size 1014 GiB is set

5.fdisk创建逻辑分区

Command (m for help): n     #新建分区
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l   #创建逻辑分区
Adding logical partition 5
First sector (20975616-2147483647, default 20975616): 
Using default value 20975616
Last sector, +sectors or +size{K,M,G} (20975616-2147483647, default 2147483647): +10G       #分配10G
Partition 5 of type Linux and of size 10 GiB is set

6.fdisk查看分区情况并保存

Command (m for help): p     #查看分区创建情况

Disk /dev/sdb: 1099.5 GB, 1099511627776 bytes, 2147483648 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 label type: dos
Disk identifier: 0xa620416c

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux
/dev/sdb2        20973568  2147483647  1063255040    5  Extended
/dev/sdb5        20975616    41947135    10485760   83  Linux

Command (m for help): w     #保存分区
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

7.安装 parted 命令刷新内核立即生效,无需重启。

root@Hyman[16:24:37]~# yum install parted -y
root@Hyman[16:35:05]~# partprobe /dev/sdb

格式化磁盘

mkfs格式化磁盘,实质创建文件系统,文件系统类似于将房子装修成3室一厅,还是2室一厅。

mkfs 命令的选项

选项 解释
-b 设定数据区块占用空间大小,目前支持1024/2048/4096bytes每个块。
-t 用来指定什么类型的文件类型,可以使ext4,xfs等
-i 设定iNode的大小
-N 设定iNode数量,防止iNode数量不够导致磁盘不足

格式化整个磁盘

root@Hyman[16:35:43]~# mkfs.ext4 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
67108864 inodes, 268435456 blocks
13421772 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2415919104
8192 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, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
    102400000, 214990848

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

格式化磁盘的某个分区

root@Hyman[16:43:19]~# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=655360 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

使用mount挂载并使用

如果需要使用该磁盘的空间,需要准备一个空的目录作为挂载点,与该设备进行关联。

root@Hyman[16:47:13]~# mkdir /data
root@Hyman[16:47:19]~# mount /dev/sdb1 /data/

你可能感兴趣的:(Day18-磁盘管理1(基本概念,fdisk分区命令的使用))