磁盘管理与文件系统

一.磁盘管理

1.1、磁盘结构

  • 硬盘的物理结构:

    • 盘头:硬盘有多个盘片,每盘片2面
    • 磁头:每面一个磁头
  • 硬盘的数据结构

  • 扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据,是硬盘的最小存储单位

    • 磁道:同一盘片不同半径的同心圆,是由磁头在盘片表面划出的圆形轨迹
    • 柱面:不同盘片相同半径构成的圆柱面,由同一半径圆的多个磁道组成

在这里插入图片描述
在这里插入图片描述
硬盘存储容量=磁头数x磁道(柱面)数x每道扇区数x每扇区字节数

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

磁盘接口类型:IDE、SATA、SCSI、SAS、光纤通道
IDE——并口数据线连接主板与硬盘,抗干扰性太差,且排线占用空间较大,不利电脑内部散热,已逐渐被 SATA 所取代。

SATA——相对于IDE其散热性好,抗干扰性强,支持热插拔。

SCSI——SCSI硬盘广为工作站级个人电脑以及服务器所使用,CPU占用率小,转速快,支持热插拔等。

SAS——和SATA硬盘相同,转速(理论值)可达到 6Gb/s。

光纤通道——和SCSI接口一样光纤通道最初也不是为硬盘设计开发的接口技术,是专门为网络系统设计的,但随着存储系统对速度的需求,才逐渐应用到硬盘系统中。光纤通道的主要特性有:热插拔性、高速带宽、远程连接、连接设备数量大等。

1.2、MBR与磁盘分区表示

主引导记录:

  • MBR位于硬盘第一个物理扇区处
  • MBR中包含硬盘的主引导程序446bytes和硬盘分区表 (硬盘分区表有66bytes,512-446=66)
  • 分区表有4个分区记录,每个记录区占16个字符 (66➗16≈4/font>
    Linux中将硬盘、分区等设备均表示为文件
    /dev/hda5,其中/dev代表硬件目录;hd代表IDE;a代表第一块硬盘;5代表分区

1.3、磁盘分区结构

  • 硬盘中的主分区数目只有4个
  • 主分区和扩展分区的序号限制在1~4
  • 扩展分区再分为逻辑分区
  • 逻辑分区的序号将始终从5开始

二.文件系统

2.1、文件系统类型

XFS文件系统:

  • 存放文件和目录数据的分区
  • 高性能的日志型文件系统
  • CentOS 7系统中默认使用的文件系统
    SWAP—交换文件系统:
  • 为Linux系统建立交换分区
  • 一般设置为物理内存的1.5~2倍
    Linux支持的其他文件系统类型:
  • FAT16、FAT32、NTFS
  • EXT4、JFS

2.2、检测并确认新硬盘

fdisk:查看或管理磁盘分区格式:fdisk -l [磁盘设备]
[root@localhost ~]# fdisk -l

磁盘 /dev/sda:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a32bf

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   209715199   103808000   8e  Linux LVM

磁盘 /dev/sdb:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x9f4e1879

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   82  Linux swap / Solaris
/dev/sdb2        20973568    41945087    10485760   83  Linux

磁盘 /dev/mapper/centos-root:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节


磁盘 /dev/mapper/centos-home:50.5 GB, 50457477120 字节,98549760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节
不重启识别硬盘:
[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 ~]# cd /sys/class/scsi_host/
[root@localhost scsi_host]# ls
host0  host1  host2
[root@localhost scsi_host]# ll
总用量 0
lrwxrwxrwx. 1 root root 0 97 14:41 host0 -> ../../devices/pci0000:00/0000:00:10.0/host0/scsi_host/host0
lrwxrwxrwx. 1 root root 0 97 14:41 host1 -> ../../devices/pci0000:00/0000:00:07.1/ata1/host1/scsi_host/host1
lrwxrwxrwx. 1 root root 0 97 14:41 host2 -> ../../devices/pci0000:00/0000:00:07.1/ata2/host2/scsi_host/host2

2.3、管理磁盘分区

[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

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


命令(输入 m 获取帮助):m
命令操作
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   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)

命令(输入 m 获取帮助)
演示:
[root@localhost opt]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

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

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

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1)1
起始 扇区 (2048-125829119,默认为 2048)2048
Last 扇区, +扇区 or +size{K,M,G} (2048-125829119,默认为 125829119)+10G
分区 1 已设置为 Linux 类型,大小设为 10 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost opt]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0    5G  0 part /boot
└─sda2            8:2    0   84G  0 part 
  ├─centos-root 253:0    0   80G  0 lvm  /
  └─centos-swap 253:1    0    4G  0 lvm  [SWAP]
sdb               8:16   0   60G  0 disk 
└─sdb1            8:17   0   10G  0 part 
sr0              11:0    1  4.2G  0 rom  /run/media/root/CentOS 7 x86_64

常用选项:n:新建一个分区 p:打印出当前分区表 d:删除一个分区 t:修改分区的系统id w:保持修改并退出

2.4、创建文件系统

mkfs -t 文件系统类型 格式化的分区或硬盘   例:mkfs -t xfs /dev/sdb1
mkfs.文件系统类型  格式化的分区或硬盘    例:mkfs.xfs /dev/sdb1
[root@localhost opt]# mkfs.
mkfs.btrfs   mkfs.cramfs  mkfs.ext2    mkfs.ext3    mkfs.ext4    mkfs.fat     mkfs.minix   mkfs.msdos   mkfs.vfat    mkfs.xfs
[root@localhost opt]# mkfs.
mkfs.btrfs   mkfs.cramfs  mkfs.ext2    mkfs.ext3    mkfs.ext4    mkfs.fat     mkfs.minix   mkfs.msdos   mkfs.vfat    mkfs.xfs
[root@localhost opt]# 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
[root@localhost opt]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0    5G  0 part /boot
└─sda2            8:2    0   84G  0 part 
  ├─centos-root 253:0    0   80G  0 lvm  /
  └─centos-swap 253:1    0    4G  0 lvm  [SWAP]
sdb               8:16   0   60G  0 disk 
└─sdb1            8:17   0   10G  0 part 
sr0              11:0    1  4.2G  0 rom  /run/media/root/CentOS 7 x86_64

2.5、创建文件系统

格式:mkswap 分区设备
swapon /dev/ sdb2           新增加的交换分区
swapoff /dev/ sdb2          停用指定的交换分区
swapon - s                  查看每个分区的swap状态信息
free -h                     以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值
[root@localhost data]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

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


命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (2-4,默认 2)2
起始 扇区 (2048-125829119,默认为 2048)2048
Last 扇区, +扇区 or +size{K,M,G} (2048-125829119,默认为 125829119)+10G
分区 2 已设置为 Linux 类型,大小设为 10 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x791f6494

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760    0  Empty
/dev/sdb2            2048    20973567    10485760   83  Linux

命令(输入 m 获取帮助):t
分区号 (1,2,默认 2)2
Hex 代码(输入 L 列出所有代码)82
已将分区“Linux”的类型更改为“Linux swap / Solaris”

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x791f6494

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760    0  Empty
/dev/sdb2            2048    20973567    10485760   82  Linux swap / Solaris
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        636M        664M        9.3M        522M        976M
Swap:          4.0G          0B        4.0G
[root@localhost ~]# ls /dev/sdb2
/dev/sdb2
[root@localhost ~]# mkswap /dev/sdb2
mkswap: /dev/sdb2: warning: wiping old xfs signature.
正在设置交换空间版本 1,大小 = 10485756 KiB
无标签,UUID=77a53374-0957-4399-99af-892da7a57eb6
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        635M        664M        9.3M        522M        976M
Swap:          4.0G          0B        4.0G
[root@localhost ~]# swapon /dev/sdb2
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        643M        656M        9.3M        522M        968M
Swap:           13G          0B         13G
[root@localhost ~]# 

三.挂载、卸载文件系统

3.1、挂载——mount

挂载文件系统、ISO镜像到指定文件夹
mount  [-t 类型]  存储设备  挂载点目录
mount  -o loop  ISO镜像文件  挂载点目录
[root@localhost /]# mount /dev/sdb2 /data/
[root@localhost /]# de -Th
bash: de: 未找到命令...
相似命令是: 'ed'
[root@localhost /]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        50G  5.0G   46G   10% /
devtmpfs                devtmpfs  897M     0  897M    0% /dev
tmpfs                   tmpfs     912M     0  912M    0% /dev/shm
tmpfs                   tmpfs     912M  9.1M  903M    1% /run
tmpfs                   tmpfs     912M     0  912M    0% /sys/fs/cgroup
/dev/sdb2(挂载成功)               xfs        10G   33M   10G    1% /mnt
/dev/sda1               xfs      1014M  179M  836M   18% /boot
/dev/mapper/centos-home xfs        47G   33M   47G    1% /home
tmpfs                   tmpfs     183M   24K  183M    1% /run/user/0
/dev/sr0                iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64

3.2、卸载——umount

[root@localhost /]# umount /dev/sdb2 /data/
[root@localhost /]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        50G  5.0G   46G   10% /
devtmpfs                devtmpfs  897M     0  897M    0% /dev
tmpfs                   tmpfs     912M     0  912M    0% /dev/shm
tmpfs                   tmpfs     912M  9.1M  903M    1% /run
tmpfs                   tmpfs     912M     0  912M    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  179M  836M   18% /boot
/dev/mapper/centos-home xfs        47G   33M   47G    1% /home
tmpfs                   tmpfs     183M   24K  183M    1% /run/user/0
/dev/sr0                iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64

四.设置文件系统的自动挂载

/etc/fstab配置文件:
包含需要开机后自动挂载的文件系统记录
Linux 操作系统在每次开机时,会自动读取/etc/fstab文件的内容,自动挂载所指定的文件系统。

[root@localhost /]# vim /etc/fstab 
# /etc/fstab
# Created by anaconda on Tue Aug 31 17:50:35 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=406ffced-77a0-4384-808f-c0c8ecfd7029 /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/cento-swap swap                    swap    defaults        0 0r
/dev/sdb2     /mnt xfs defaults 0 0
[root@localhost /]# mount -a
重启后(reboot)自动挂载

还有一种方法使用UUID

[root@localhost /]# blkid
/dev/sda1: UUID="406ffced-77a0-4384-808f-c0c8ecfd7029" TYPE="xfs" 
/dev/sda2: UUID="tK1pXy-2E8r-Algn-c4fH-TGh6-eMtR-rjzpIc" TYPE="LVM2_member" 
/dev/sdb1: UUID="ac426b25-9154-49ac-8c30-cebfde6c120a" TYPE="swap" 
/dev/sdb2: UUID="2e218a54-5784-421e-85f4-2a565b4bad5d" TYPE="xfs" (看sdb2的UUID)
/dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/mapper/centos-root: UUID="3e19ef30-c297-45d6-a881-204539b6483a" TYPE="xfs" 
/dev/mapper/centos-swap: UUID="8c62fc68-336e-4867-a7f1-42d63758cf4e" TYPE="swap" 
/dev/mapper/centos-home: UUID="6ebc71f9-5171-44ae-91af-d587a6fb3e30" TYPE="xfs" 
[root@localhost /]# vim /etc/fstab 


#
# /etc/fstab
# Created by anaconda on Tue Aug 31 17:50:35 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=406ffced-77a0-4384-808f-c0c8ecfd7029 /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/cento-swap swap                    swap    defaults        0 0
UUID=2e218a54-5784-421e-85f4-2a565b4bad5d  /mnt xfs defaults 0 0
[root@localhost /]# mount -a
重启后(reboot)自动挂载
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值