千家信息网

Linux系统管理之磁盘管理与文件系统

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,Linux系统管理之磁盘管理与文件系统一、前言管理磁盘是管理员的重要工作内容,本文主要介绍以下几个方面磁盘结构及分区表示管理磁盘及分区管理文件系统二、磁盘(无尘环境制造)结构及分区1.物理结构盘片:硬
千家信息网最后更新 2024年11月23日Linux系统管理之磁盘管理与文件系统

Linux系统管理之磁盘管理与文件系统

一、前言

管理磁盘是管理员的重要工作内容,本文主要介绍以下几个方面

  1. 磁盘结构及分区表示
  2. 管理磁盘及分区
  3. 管理文件系统

二、磁盘(无尘环境制造)结构及分区

1.物理结构

  1. 盘片:硬盘有多个盘片,每盘片2面
  2. 磁头:每面有一个磁头

2.数据结构

  1. 扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据
  2. 磁道:同一盘片不同半径的同心圆
  3. 柱面:不同盘片相同半径构成的圆柱面

多个扇区组成磁道,多个相同直径的磁道组成柱面

笔记本的磁盘一般是2.5英寸,7mm厚度和9.5mm厚度,台式机一般是3.5英寸,SSD 2.5英寸 厚度7mm ,固态硬盘,电子芯片存储,数据丢失无法恢复,速度快。

3.存储容量=磁头数柱面每道扇区数*每扇区字节数

4.磁盘接口类型

  1. IDE 基本不用
  2. SATA 目前是SATA3
  3. SCSI 服务器专用的

5.MBR与磁盘分区表示

MBR最多4个分区,GPT支持128分区

1)主引导记录

  1. MBR位于硬盘第一个物理扇区处
  2. MBR中包含硬盘的主引导程序和硬盘分区表
  3. 分区表有4个分区记录区,每个分区记录占16字节

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

/dev/hda5 hd--IDE设备接口 ,sd--SCSI设备 a--第一块 5--序列号

3)磁盘分区结构

硬盘中的主分区2数目只有四个主分区和扩展分区的序号为1~4

扩展分区(MBR必须有一个主分区才可以创建主分区)可以分为逻辑分区,序号从5开始

三、文件系统

1.文件系统类型

1)XFS文件系统

高性能的日志文件系统,擅长处理大文件,支持百万级T字节的存储空间。

存放文件和目录数据的分区,有日志功能,宕机也可以进行数据恢复

2)swap

SWAP,交换文件系统--用于Linux系统建立交换分区,相当于虚拟内存,缓解物理内存不足的问题(但是有上限,只是缓解,而不是解决)该区不用于直接存储用户的文件和目录等数据!!!

3)Linux支持的其他文件系统类型

FAT16、FAT32(不安全)、NTFS

EXT4(Centos6) EXT3(Centos5)

四、管理磁盘、分区及文件系统

1.lsblk命令

用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息

2.检测并确认新硬盘--分区

fdisk命令--(fdisk -l )查看或(fdisk 设备)管理磁盘分区

交互模式中的常用命令:m(帮助信息)、p(显示)、n(新建)、d(删除)、t(变更分区类型)、w(保存,考虑清楚操作)、q(不保存退出)

[root@lokott ~]# fdisk -l磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 512 字节I/O 大小(最小/最佳):512 字节 / 512 字节磁盘标签类型:dos磁盘标识符:0x000a0791   设备   Boot      Start         End      Blocks   Id  System/dev/sda1   *        2048    12584959     6291456   83  Linux/dev/sda2        12584960    54527999    20971520   83  Linux/dev/sda3        54528000    62916607     4194304   82  Linux swap / Solaris/dev/sda4        62916608    83886079    10484736    5  Extended/dev/sda5        62918656    83886079    10483712   83  Linux 设备  *代表引导分区    起始位置 结束位置  分区大小(kb)系统ID号 分区类型                           

3.格式化文件系统类型

  1. mkfs -t 文件系统类型(如xfs) 分区设备(/dev/sdbn,n表示序号)例如:mkfs -t xfs /dev/sdb1
  2. mkfs.xfs /dev/sdb1 mkfs一般用于格式化XFS、EXT4、FAT等不同类型的分区
  3. mkswap 格式化Swap交换分区

4.挂载

mount /dev/sdb1 /mnt

总结:首先我们要先添加一块到多块磁盘,在VMware上可以进行添加,后面给出具体操作,其次进行分区、格式化、挂载操作,但是目前挂载是一次有效,虚拟机重启后是无效的,需要手动操作进行再次挂载,这样是非常不方便的,所以下面介绍永久挂载的操作

5.永久挂载

  1. 在root用户下先vim /etc/fstab文件,
  2. 添加设备名称 挂载点 文件系统类型 文件权限功能(一般是defaults) 0 (容灾处理) 0(启动优先级,0表示正常顺序进行加载)
  3. 保存退出后,一般服务器是不能重启(宕机的),所以一般不会重启来使系统加载,而是使用mount -a命令进行挂载

6.查看磁盘使用情况

df -hT

具体操作过程如下:

(1)首先在VMware上添加三块新的硬盘

(2)重启Centos7

​ [root@lokott ~]# init 6

(3)lsblk查看块设备信息

[root@lokott ~]# lsblk                              //查看原本有sda,添加了sdb、sdc和sddNAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTsda      8:0    0   40G  0 disk ├─sda1   8:1    0    6G  0 part /boot├─sda2   8:2    0   20G  0 part /├─sda3   8:3    0    4G  0 part [SWAP]├─sda4   8:4    0    1K  0 part └─sda5   8:5    0   10G  0 part /homesdb      8:16   0   20G  0 disk sdc      8:32   0   20G  0 disk sdd      8:48   0   20G  0 disk sr0     11:0    1  4.2G  0 rom  /run/media/root/CentOS 7 x86_64[root@lokott ~]# fdisk -l                        //也可以用fdisk -l 查看详细信息磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 512 字节I/O 大小(最小/最佳):512 字节 / 512 字节磁盘标签类型:dos磁盘标识符:0x000a0791   设备 Boot      Start         End      Blocks   Id  System/dev/sda1   *        2048    12584959     6291456   83  Linux/dev/sda2        12584960    54527999    20971520   83  Linux/dev/sda3        54528000    62916607     4194304   82  Linux swap / Solaris/dev/sda4        62916608    83886079    10484736    5  Extended/dev/sda5        62918656    83886079    10483712   83  Linux磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 512 字节I/O 大小(最小/最佳):512 字节 / 512 字节磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 512 字节I/O 大小(最小/最佳):512 字节 / 512 字节磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 512 字节I/O 大小(最小/最佳):512 字节 / 512 字节

(4)fdisk /dev/sdn 进入交互模式下进行硬盘分区

[root@lokott ~]# fdisk /dev/sdb            //分区操作开始欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。Device does not contain a recognized partition table使用磁盘标识符 0x4b4b9f25 创建新的 DOS 磁盘标签。命令(输入 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 获取帮助):n            //将硬盘分区,分出一个extend区来建立逻辑分区,但是必须先有主分区Partition type:   p   primary (0 primary, 0 extended, 4 free)   e   extendedSelect (default p): p分区号 (1-4,默认 1):起始 扇区 (2048-41943039,默认为 2048):将使用默认值 2048Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G分区 1 已设置为 Linux 类型,大小设为 5 GiB命令(输入 m 获取帮助):nPartition type:   p   primary (3 primary, 0 extended, 1 free)   e   extendedSelect (default e): e已选择分区 2起始 扇区 (10487808-41943039,默认为 10487808):将使用默认值 10487808Last 扇区, +扇区 or +size{K,M,G} (10487808-20973567,默认为 20973567):将使用默认值 20973567分区 2 已设置为 Extended 类型,大小设为 5 GiB命令(输入 m 获取帮助):w[root@lokott ~]# fdisk -l /dev/sdb            //查看sdb硬盘信息磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 512 字节I/O 大小(最小/最佳):512 字节 / 512 字节磁盘标签类型:dos磁盘标识符:0x4b4b9f25   设备 Boot      Start         End      Blocks   Id  System/dev/sdb1            2048    10487807     5242880   83  Linux/dev/sdb2        10487808    20973567     5242880    5  Extended/dev/sdb3        20973568    31459327     5242880   83  Linux/dev/sdb4        31459328    41943039     5241856   83  Linux/dev/sdb5        10489856    14684159     2097152   83  Linux/dev/sdb6        14686208    18880511     2097152   83  Linux/dev/sdb7        18882560    20973567     1045504   83  Linux

(5)mkfs进行格式化操作

[root@lokott ~]# mkfs -t xfs /dev/sdb1meta-data=/dev/sdb1              isize=512    agcount=4, agsize=327680 blks         =                       sectsz=512   attr=2, projid32bit=1         =                       crc=1        finobt=0, sparse=0data     =                       bsize=4096   blocks=1310720, imaxpct=25         =                       sunit=0      swidth=0 blksnaming   =version 2              bsize=4096   ascii-ci=0 ftype=1log      =internal log           bsize=4096   blocks=2560, version=2         =                       sectsz=512   sunit=0 blks, lazy-count=1realtime =none                   extsz=4096   blocks=0, rtextents=0

(6)进行磁盘挂载并且用df -hT检查是否成功挂载

[root@lokott ~]# mkdir /sdb1_mount[root@lokott ~]# ls /sdb1_mount/[root@lokott ~]# mount /dev/sdb1 /sdb1_mount/[root@lokott ~]# df -hT文件系统       类型      容量  已用  可用 已用% 挂载点/dev/sda2      xfs        20G  4.5G   16G   23% /devtmpfs       devtmpfs  474M     0  474M    0% /devtmpfs          tmpfs     489M     0  489M    0% /dev/shmtmpfs          tmpfs     489M  7.2M  481M    2% /runtmpfs          tmpfs     489M     0  489M    0% /sys/fs/cgroup/dev/sda1      xfs       6.0G  158M  5.9G    3% /boot/dev/sda5      xfs        10G   37M   10G    1% /hometmpfs          tmpfs      98M  4.0K   98M    1% /run/user/42tmpfs          tmpfs      98M   20K   98M    1% /run/user/0/dev/sr0       iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64/dev/sdb1      xfs       5.0G   33M  5.0G    1% /sdb1_mount

注意!重启之后不会自动挂载的

[root@lokott ~]# init 6Connection closing...Socket close.Connection closed by foreign host.Disconnected from remote host(centos7-1) at 22:25:16.Type `help' to learn how to use Xshell prompt.[c:\~]$ Connecting to 192.168.189.133:22...Connection established.To escape to local shell, press 'Ctrl+Alt+]'.Last login: Fri Nov  1 22:26:01 2019[root@lokott ~]# df -hT文件系统       类型      容量  已用  可用 已用% 挂载点/dev/sda2      xfs        20G  4.5G   16G   23% /devtmpfs       devtmpfs  474M     0  474M    0% /devtmpfs          tmpfs     489M     0  489M    0% /dev/shmtmpfs          tmpfs     489M  7.2M  481M    2% /runtmpfs          tmpfs     489M     0  489M    0% /sys/fs/cgroup/dev/sda1      xfs       6.0G  158M  5.9G    3% /boot/dev/sda5      xfs        10G   37M   10G    1% /hometmpfs          tmpfs      98M  4.0K   98M    1% /run/user/42tmpfs          tmpfs      98M   16K   98M    1% /run/user/0/dev/sr0       iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64

(8)设置永久挂载设置操作

[root@lokott ~]# cat /etc/fstab                 //查看一下文件的内容然后vim 写入命令## /etc/fstab# Created by anaconda on Wed Oct 23 12:15:45 2019## 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#UUID=d0f8b702-0aa9-4857-9551-2e1283d2f5f9 /                       xfs     defaults        0 0UUID=4d632b10-c77d-438f-a9f4-8b4b0aeee9a9 /boot                   xfs     defaults        0 0UUID=a12d80a9-1b44-487a-996f-b57fbca184b5 /home                   xfs     defaults        0 0UUID=af672794-14a8-433a-a9c9-c3c263de9243 swap                    swap    defaults        0 0[root@lokott ~]# vim /etc/fstab         [root@lokott ~]# cat /etc/fstab         ## /etc/fstab# Created by anaconda on Wed Oct 23 12:15:45 2019## 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#UUID=d0f8b702-0aa9-4857-9551-2e1283d2f5f9 /                       xfs     defaults        0 0UUID=4d632b10-c77d-438f-a9f4-8b4b0aeee9a9 /boot                   xfs     defaults        0 0UUID=a12d80a9-1b44-487a-996f-b57fbca184b5 /home                   xfs     defaults        0 0UUID=af672794-14a8-433a-a9c9-c3c263de9243 swap                    swap    defaults        0 0/dev/sdb1   /sdb1_mount xfs defaults    0 0[root@lokott ~]# df -hT                     //添加之后一般是需要重启才会加载的,但是我们知道服务器                                          //一般是不允许允许宕机的,因此需要用mount -a使其立即生效文件系统       类型      容量  已用  可用 已用% 挂载点/dev/sda2      xfs        20G  4.5G   16G   23% /devtmpfs       devtmpfs  474M     0  474M    0% /devtmpfs          tmpfs     489M     0  489M    0% /dev/shmtmpfs          tmpfs     489M  7.2M  481M    2% /runtmpfs          tmpfs     489M     0  489M    0% /sys/fs/cgroup/dev/sda1      xfs       6.0G  158M  5.9G    3% /boot/dev/sda5      xfs        10G   37M   10G    1% /hometmpfs          tmpfs      98M  4.0K   98M    1% /run/user/42tmpfs          tmpfs      98M   20K   98M    1% /run/user/0/dev/sr0       iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64[root@lokott ~]# mount -a[root@lokott ~]# df -hT | tail -1 /dev/sdb1      xfs       5.0G   33M  5.0G    1% /sdb1_mount[root@lokott ~]# 

小结:

在理解原理的基础上进行实际操作,需要多熟悉体会并且真正理解操作过程,巧用一些命令可以简化一些问题提高效率,例如上面的管道符号(|)的使用,可以更加直观地查看信息,提高效率。所以我们需要学以致用,多思多用。

0