磁盘管理与文件系统

磁盘管理与文件系统

一.磁盘基础

磁盘结构

硬件的物理结构

盘片:硬盘有多个盘片,没盘片两面

磁头:每面一个磁头

硬盘的数据结构

扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据

磁道:同一盘片不同半径的同心圆

柱面:不同盘片相同半径构成的圆柱面

硬盘存储容量

磁盘储存容量=磁头数x磁道(磁面)数x每道扇区数x每道扇区数x每扇去字节数

可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域

磁盘接口类型

IDE、133mb/s,并行接口,早期家用电脑

SATA、6Gbps,SATA数据端口与电源端口是分开的,即需要两条线,一条数据一条电源线

SCSI、640/mb/s,并行接口,早期服务器

SAS、6Gbps,SAS是一整条,数据端口与电源端口是一体化的,SAS中是包括含供电线,而SATA中不包括含供电线。SATA标准其实是SAS标准的一个子集,二者可兼容,SATA硬盘可插入SAS主板上,翻之不行。

光纤通道

服务器硬盘大小

LFF:3.5英寸一般见到的台式机大小

SFF:small form Factor小形状因数,2.5寸,注意不同于2.5寸的笔记本硬盘

这里的L、S分别指的是大小,目前服务器或者盘柜采用sff规格的硬盘主要是考虑增大单位密度内的磁盘容量、增强散热、减小功耗

MBR磁盘分区表示

主引导记录(MBR:Master Boot Record)

MBR主引导记录字节数为446字节

MBR位于硬盘第一个物理扇区处

MBR中包含硬盘的主引导程序和硬盘分区表

分区表有4个分区及录区,每个分区及录区占16个字节

linux中将硬盘、分区等设备均表示为文件

/dev/hda5

dev:硬件设备所在的目录

hd:表示IDE设备 sd:表示SCSI设备

a:硬盘的顺序号,以字母a、b、c......表示

5:分区的顺序号,以数字1、2、3......表示

磁盘分区结构

硬盘中的主分区数目只有4个

主分区和扩展分区的序号限制在1~4

扩展分区再分逻辑分区

逻辑分区的序号将始终从5开始

二.文件系统类型

XFS文件系统

文件系统类型决定了向分区中存放、读取数据的方式和效率。

根据所记录的日志在很短的时间内迅速恢复磁盘文件内容

用优化算法,日志记录对整体文件操作影响非常小

是一个全64-bit的文件系统,最大可以支持8EB的文件系统,

而支持单个文件则达到8E能以接近裸设备I/O的性能存储

swap交换文件系统

swap交换分区是系统RAM的补充,swap 分区支持虚拟内存。当没有足够的RAM保存系统处理的数据时会将数据写入swap分区,当系统缺乏swap空间时,内核会因RAM内存耗尽而终止进程。配置过多swap空间会造成存储设备处于分配状态但闲置,造成浪费,过多swap空间还会掩盖内存不足。

FAT16、FAT32、

且最大只能支持32GB分区,单个文件也只能支持最大4GB。

3.1.4NTFS

NTFS文件系统所具备3个功能:错误预警功能、磁盘自我修复功能和日志功能,单个文件64GB

EXT4

Extended file system适用于那些分区容量不是太大,更新也不频繁的情况,例如/boot分区是ext文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳。创建和使用巨型文件(16TB)、最大1EB的文件系统,以及速度的提升1EB=1024PB=1024TB

JFS

主要是为满足服务器的高吞吐量和可靠性需求而设计、开发的。单个文件最大限制16TB, 该文件系统最大支持1 PB的容量。1PB=1024TB

三.检测并确认新硬盘

fdisk命令

查看或管理磁盘分区

fdisk -l [磁盘设备]

fdisk [磁盘设备]

交互模式中的常用指令

m:打印出菜单

p:打印出当前分区表

n:新建一个分区

d:删除一个分区

t:改变分区的属性、系统ID

w:保存

q:不保存退出

[root@localhost ~]# fdisk -l /dev/sda    #查看磁盘分区
#这里不加-l的话则会显示所有磁盘
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0002e26d
   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    31475711    14688256   8e  Linux LVM

device:分区的设备文件名称

Boot:是否是引导分区。若是,则有“*”标识。主系统

start:该分区在硬盘中的扇区起始位置

End:该分区在硬盘中的扇区结束位置

Blocks:分区的大小,以blocks(块)为单位。默块大小为1024字节

ID: 分区对应的系统ID号,83表示Linux中的默认分区(XFS或EXT4),8e表示LVM逻辑卷; Lvm是linux操作系统中对磁盘分区进行管理的一种逻辑机制。

System:分区类型 ,识别到新的硬盘后,就可以在该硬盘中建立新的分区了。

[root@localhost ~]# fdisk /dev/sda     #管理分区
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):p      #打印出当前分区表
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0002e26d
   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    31475711    14688256   8e  Linux LVM
规划硬盘中的分区

步骤:
1.先添加硬盘,并让系统识别,可以重启,或者不重启的情况下输入一下命令
echo "- - - "> /sys/class/scsi_host/host0/scan
echo "- - - "> /sys/class/scsi_host/host1/scan
echo "- - - "> /sys/class/scsi_host/host2/scan
2.fdisk分区 方便使用,最大化硬盘性能
3.格式化后确定文件系统,Windows系统不格式化也无法使用
4.挂载
添加硬盘

1.首先点击设置

2.点击硬盘添加

3.点击硬盘下一步

5.下一步

6.下一步

7.完成

最后一步点击确定

这个时候我们添加的硬盘系统并不识别

[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   14G  0 part 
  ├─centos-root 253:0    0   10G  0 lvm  /
  └─centos-swap 253:1    0    4G  0 lvm  [SWAP]
sr0              11:0    1  4.2G  0 rom  /run/media/root/CentOS 7 x86_64

这是可以重启或者刷新接口

[root@localhost ~]# echo "- - -"> /sys/class/scsi_host/host0/scan
[root@localhost ~]# echo "- - -"> /sys/class/scsi_host/host1/scan
[root@localhost ~]# echo "- - -"> /sys/class/scsi_host/host2/scan
[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   14G  0 part 
  ├─centos-root 253:0    0   10G  0 lvm  /
  └─centos-swap 253:1    0    4G  0 lvm  [SWAP]
sdb               8:16   0    5G  0 disk #这时可以看到硬盘出来了
sr0              11:0    1  4.2G  0 rom  /run/media/root/CentOS 7 x86_64

分区

[root@localhost ~]# fdisk /dev/sdb#分区交互界面
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xcd7049f3 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:   #选择分区类型
   p   primary (0 primary, 0 extended, 4 free)#这里可以看到0个主分区0个扩展分区还有四个剩余
   e   extended   #扩展分区
   Select (default p):        #回车默认p选择主分区
Using default response p
分区号 (1-4,默认 1):      #回车默认序列号为1
起始 柱面 (1-652,默认为 1):
将使用默认值 1
Last 柱面, +柱面 or +size{K,M,G} (1-652,默认为 652):+3G
分区 1 已设置为 Linux 类型,大小设为 3 GiB

命令(输入 m 获取帮助):p      #打印出当前分区表

磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 柱面 of 16065 * 512 = 8225280 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xa04201e5

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         394     3155968   83  Linux

命令(输入 m 获取帮助):w    #保存
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# ll /dev/sd*显示dev目录下以sd开头的文件
brw-rw----. 1 root disk 8,  0 2月  22 21:07 /dev/sda
brw-rw----. 1 root disk 8,  1 2月  22 21:07 /dev/sda1
brw-rw----. 1 root disk 8,  2 2月  22 21:07 /dev/sda2
brw-rw----. 1 root disk 8, 16 2月  22 21:44 /dev/sdb
brw-rw----. 1 root disk 8, 17 2月  22 21:44 /dev/sdb1
#这里可以看到刚分的区出来了

这时这个分区还不可以用,还未指定文件系统

[root@localhost ~]# mkfs -t xfs /dev/sdb1#给sdb1#对新建的分区进行格式化
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=197248 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=788992, 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
[root@localhost mnt]# mount /dev/sdb1 /mnt#挂载
[root@localhost mnt]#查看挂载
文件系统                   1K-块    已用    可用 已用% 挂载点
/dev/mapper/centos-root 10475520 5112844 5362676   49% /
devtmpfs                  991324       0  991324    0% /dev
tmpfs                    1007236       0 1007236    0% /dev/shm
tmpfs                    1007236    9212  998024    1% /run
tmpfs                    1007236       0 1007236    0% /sys/fs/cgroup
/dev/sda1                1038336  182364  855972   18% /boot
tmpfs                     201448      24  201424    1% /run/user/0
/dev/sr0                 4414592 4414592       0  100% /run/media/root/CentOS 7 x86_64
/dev/sdb1                3145728   32944 3112784    2% /mnt
#这可以看到已经挂载上去了

mkfs命令

Make Filesystem,创建文件系统(格式化)

命令格式

mkfs -t 文件系统类型 分区设备

[root@localhost ~]# mkfs -t xfs /dev/sdb1#给sdb1#对新建的分区进行格式化
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=197248 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=788992, 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

mkswap命令

make swap,创建交换文件系统

格式:

mkswap 分区设备

示例

[root@localhost mnt]# fdisk /dev/sdc#进入分区交互界面
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x6f050ae5 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n#新建分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-10485759,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):+3G   
分区 1 已设置为 Linux 类型,大小设为 3 GiB
命令(输入 m 获取帮助):p    #打印出当前分区表
磁盘 /dev/sdc:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6f050ae5
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048     6293503     3145728   83  Linux
命令(输入 m 获取帮助):t   #改变分区的属性、系统ID
已选择分区 1
Hex 代码(输入 L 列出所有代码):L     #列出所有代码
 0  空              24  NEC DOS         81  Minix / 旧 Linu bf  Solaris        
 1  FAT12           27  隐藏的 NTFS Win 82  Linux 交换 / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 隐藏的 C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux 扩展      c7  Syrinx         
 5  扩展            41  PPC PReP Boot   86  NTFS 卷集       da  非文件系统数据 
 6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 纯文本    de  Dell 工具      
 8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt         
 9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问       
 a  OS/2 启动管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 扩展 (LBA)  54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC  
11  隐藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq 诊断     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  隐藏的 FAT16 <3 61  SpeedStor       ab  Darwin 启动     f2  DOS 次要       
16  隐藏的 FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  隐藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST 智能睡眠    65  Novell Netware  b8  BSDI swap       fd  Linux raid 自动
1b  隐藏的 W95 FAT3 70  DiskSecure 多启 bb  Boot Wizard 隐  fe  LANstep        
1c  隐藏的 W95 FAT3 75  PC/IX           be  Solaris 启动    ff  BBT            
1e  隐藏的 W95 FAT1 80  旧 Minix       
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”
命令(输入 m 获取帮助):p
磁盘 /dev/sdc:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6f050ae5
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048     6293503     3145728   82  Linux swap / Solaris
命令(输入 m 获取帮助):w   #保存
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost mnt]# mkswap /dev/sdc1#格式化
正在设置交换空间版本 1,大小 = 3145724 KiB
无标签,UUID=af58d1e8-f098-4297-a828-bcae99de6f6a
[root@localhost mnt]# free -h   #查看swap分区
              total        used        free      shared  buff/cache   available
Mem:           1.9G        642M        811M        9.3M        512M        1.1G
Swap:          4.0G          0B        4.0G
[root@localhost mnt]# swapon /dev/sdc1  #开启交换分区
[root@localhost mnt]# free -h
              total        used        free      shared  buff/cache   available
Mem:           1.9G        644M        809M        9.3M        512M        1.1G
Swap:          7.0G          0B        7.0G#对比上一个明显变大
[root@localhost mnt]# swapoff /dev/sdc1  #关闭交换分区
[root@localhost mnt]# free -h
              total        used        free      shared  buff/cache   available
Mem:           1.9G        642M        811M        9.3M        512M        1.1G
Swap:          4.0G          0B        4.0G

挂载、卸载文件系统

mount命令

挂载文件系统、ios镜像指定文件

格式:

mount [-t类型] 储存设备 挂载点目录

mount -o loop IOS镜像文件 挂载点目录

umount命令

卸载已挂载的文件系统

格式:

umount 存储设备位置

umount 挂载点目录

设置文件系统的自动挂载

/etc/fstab配置文件

包含需要开机后自动挂载的文件系统记录

[root@localhost ~]# vim /etc/fstab    #打开配置文件
/dev/mapper/centos-root /                       xfs     defaults        0 0
#   分区       挂载点                         文件系统类型

第1字段:设备名或设备卷标名。

第2字段:文件系统的挂载点目录的位置。

第3字段:文件系统类型,如XFS、swap等。

第4字段:挂载参数,即mount 命令“-o”选项后可使用的参数。例如,defaults、 rW、ro、 noexec 分别表示默认参数、可写、只读、禁用执行程序。

第5字段:表示文件系统是否需要dump 备份(dump 是一-个备份工具)。一般设为1时表示需要,设为0时将被dump忽略

第6字段:该数字决定在系统启动时进行磁盘检查的顺序。0表示不进行检查,1表示优先检查,2表示其次检查。根分区应设为1, 其他分区设为2。

示例

[root@localhost ~]# vim /etc/fstab     #打开配置文件
/dev/sdb1/           /data/                     cfs     defaults        0 0
[root@localhost ~]# mount -a           #检查挂载是否正确
mount: 未知的文件系统类型“cfs”            #这里可以看到报错配置文件写错了
[root@localhost ~]# vim /etc/fstab     #打开配置文件修改一下
/dev/sdb1/           /data/                     xfs     defaults        0 0
[root@localhost ~]# mount -a           #这里可以看到没报错
[root@localhost ~]# df -h              #这个命令可以查看挂载信息可以看到已经挂载好了
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   10G  3.7G  6.4G   37% /
devtmpfs                 969M     0  969M    0% /dev
tmpfs                    984M     0  984M    0% /dev/shm
tmpfs                    984M  9.2M  975M    1% /run
tmpfs                    984M     0  984M    0% /sys/fs/cgroup
/dev/sda1               1014M  179M  836M   18% /boot
tmpfs                    197M  4.0K  197M    1% /run/user/42
tmpfs                    197M   48K  197M    1% /run/user/0
/dev/sr0                 4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
/dev/sdb1                 20M  1.3M   18M    7% /data
[root@localhost ~]# reboot             #重启一下看是否开机自动挂载
Connection closing...Socket close.
Connection closed by foreign host.
Disconnected from remote host(centos7-1) at 14:46:37.
Type `help' to learn how to use Xshell prompt.
[C:\~]$ 
Connecting to 192.168.88.10:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
Last login: Wed Feb 23 14:47:16 2022
[root@localhost ~]# df -h              
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   10G  3.7G  6.4G   37% /
devtmpfs                 969M     0  969M    0% /dev
tmpfs                    984M     0  984M    0% /dev/shm
tmpfs                    984M  9.1M  975M    1% /run
tmpfs                    984M     0  984M    0% /sys/fs/cgroup
/dev/sdb1                 20M  1.3M   18M    7% /data     #这里可以看到已自动挂载
/dev/sda1               1014M  179M  836M   18% /boot
tmpfs                    197M  4.0K  197M    1% /run/user/42
tmpfs                    197M   16K  197M    1% /run/user/0
/dev/sr0                 4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64

posted @ 2022-02-22 23:21  GENGBO  阅读(339)  评论(0编辑  收藏  举报