Linux系统中的磁盘与文件系统管理

Linux系统中的磁盘与文件系统管理

1、文件系统的类别

通过mk [tab][tab]查看当前系统支持的文件系统类型也差不多是常用的文件系统类型,当前cenos7系列以xfs为默认文件系统主要介绍此为主但ext系列的文件系统作为早期的系统支持度最完整而且一个磁盘的不同分区也可以有不同的文件系统所以一同介绍

[root@node0 ~]# mk
mkdict            mkfs.ext2         mkinitrd
mkdir             mkfs.ext3         mkisofs
mkdosfs           mkfs.ext4         mklost+found
mkdumprd          mkfs.fat          mkmanifest
mke2fs            mkfs.gfs2         mknod
mkfifo            mkfs.minix        mksquashfs
mkfontdir         mkfs.msdos        mkswap
mkfontscale       mkfs.vfat         mktemp
mkfs              mkfs.xfs          mkwinpeimg
mkfs.btrfs        mkhomedir_helper  
mkfs.cramfs       mkhybrid   

2、文件系统组成

超级区块:记录文件系统的整体信息,包括inode与数据区块的总量、使用量、剩余量,以及文件系统的格式与相关信息等

inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的区块号码

数据区块:实际记录文件的内容,若文件太大时,会占用多个区块。要注意的一点是一个区块仅能被一个文件占用所以要合理规划数据区块的大小否则会产生很多磁盘碎片

inode的内容:

文件的读写属性rxz

文件的拥有者与用户组

文件的大小

文件的简历或状态改变时间(ctime)、最近一次读取时间(atime)、最近修改时间(mtime)

定义文件特性的表示,如SetUID

文件真正内容的指向

除此之外的特色内容:

每个inode大小均是固定的128B(ext),新的ext4和xfs可设置到256B

每个文件都仅会占用一个inode而已,文件系统能建立的文件数量和inode数量有关

 

superblock主要内容;

记录数据区块与inode的总量

未使用与已使用的inode与数据区块数量

数据区块与inode的大小

文件系统的挂载时间、mtime、最近一次检验磁盘的时间等文件系统相关信息等

 

3、文件系统的操作

磁盘信息显示:

df:列出文件系统的整体磁盘用量

du:查案文件系统的磁盘使用量(常用在查看目录所占磁盘空间)

[root@localhost ~]# df -lh
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   17G 1008M   17G    6% /
devtmpfs                 480M     0  480M    0% /dev
tmpfs                    492M     0  492M    0% /dev/shm
tmpfs                    492M  6.7M  485M    2% /run
tmpfs                    492M     0  492M    0% /sys/fs/cgroup
/dev/vda1               1014M  133M  882M   14% /boot
tmpfs                     99M     0   99M    0% /run/user/0
[root@localhost ~]# du -h /home
12K	/home/yucheng
12K	/home

磁盘的分区、格式化、检验与挂载:

  总体规划:在系统需要新增一块磁盘的时候需要做的操作为1、对磁盘进行划分,以建立可用的硬盘分区

2、对硬盘分区进行格式化,以建立系统可用的文件系统,并且可以进行检验

3、建立挂载点并将分区挂载到挂载点

步骤详解:

1、观察磁盘的分区状态:

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0              11:0    1 1024M  0 rom  
vda             252:0    0   20G  0 disk 
├─vda1          252:1    0    1G  0 part /boot
└─vda2          252:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
RO:是否为只读设备
RM:是否为可卸载设备

一些选项介绍
[root@localhost ~]# lsblk --help

用法:
 lsblk [选项] [<设备> ...]

选项:
 -a, --all            打印所有设备
 -b, --bytes          以字节为单位而非易读的格式来打印 SIZE
 -d, --nodeps         不打印从属设备(slave)或占位设备(holder)
 -D, --discard        打印时丢弃能力
 -e, --exclude <列表> 根据主设备号排除设备(默认:内存盘)
 -I, --include <列表> 只显示有指定主设备号的设备
 -f, --fs             输出文件系统信息
 -h, --help           使用信息(此信息)
 -i, --ascii          只使用 ascii 字符
 -m, --perms          输出权限信息
 -l, --list           使用列表格式的输出
 -n, --noheadings     不打印标题
 -o, --output <列表>  输出列
 -p, --paths          打印完整设备路径
 -P, --pairs          使用 key=“value” 输出格式

blkid列出设备的UUID(全局唯一标识符)、文件系统类型等参数

[root@localhost ~]# blkid
/dev/vda1: UUID="3411d6d7-c7d4-4da7-bd67-2a2461c7253d" TYPE="xfs" 
/dev/vda2: UUID="zoM6YG-EiqC-DaBC-U3CC-M5I4-uGPF-HzRKqs" TYPE="LVM2_member" 
/dev/mapper/centos-root: UUID="0523ecd4-dad9-4663-9aa7-3dc144ef0a06" TYPE="xfs" 
/dev/mapper/centos-swap: UUID="0f2f4431-2453-4cc5-bac9-65813df253c8" TYPE="swap"

parted列出磁盘的分区表类型与分区信息:

[root@localhost ~]# parted /dev/vda print
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  标志
 1      1049kB  1075MB  1074MB  primary  xfs          启动
 2      1075MB  21.5GB  20.4GB  primary               lvm

2、磁盘分区

目前磁盘分区方式分为三种分别是gdisk、fdisk、parted其中gdisk是GPT分区表分区命令fdisk是MBR分区表分区命令而parted则是两中分区表都支持,由于现在的硬盘容量到了比较大用MBR分区表有些不合时宜而且fdisk和gdisk操作差异也不大所以主要以学习gdisk分区方式为主。

gdisk:在分区前要通过lsblk或者blkid先找到磁盘,再用parted /dev/×× print来找出内部的分区表类型,之后再用gdisk来操作系统进行分区。

如图给磁盘sda新加一个分区5操作如下

[root@node0 ~]# gdisk /dev/sda
GPT fdisk (gdisk) version 0.8.6

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): p
Disk /dev/sda: 2344225968 sectors, 1.1 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): 0633BE3F-E41B-48D3-BE73-DE1DE059F685
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 2344225934
Partitions will be aligned on 2048-sector boundaries
Total free space is 5229 sectors (2.6 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          411647   200.0 MiB   EF02  sdb1_1617782210
   2          411648         2461695   1001.0 MiB  FD00  primary
   4         2461696      2344222719   1.1 TiB     8E00  sdb4_1617782215

Command (? for help): n
Partition number (3-128, default 3): 5
First sector (34-2344225934, default = 2344222720) or {+-}size{KMGTP}: 2344222719
First sector (34-2344225934, default = 2344222720) or {+-}size{KMGTP}: 
Last sector (2344222720-2344225934, default = 2344225934) or {+-}size{KMGTP}: +10M
Last sector (2344222720-2344225934, default = 2344225934) or {+-}size{KMGTP}: 
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 
Changed type of partition to 'Linux filesystem'

Command (? for help): p
Disk /dev/sda: 2344225968 sectors, 1.1 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): 0633BE3F-E41B-48D3-BE73-DE1DE059F685
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 2344225934
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          411647   200.0 MiB   EF02  sdb1_1617782210
   2          411648         2461695   1001.0 MiB  FD00  primary
   4         2461696      2344222719   1.1 TiB     8E00  sdb4_1617782215
   5      2344222720      2344225934   1.6 MiB     8300  Linux filesystem

Command (? for help): w     #要将磁盘分区信息写入磁盘分区表

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
The operation has completed successfully.

如图所示现在还是没有分区信息这是因为没有更新内核

[root@node0 ~]# cat /proc/partitions
major minor  #blocks  name

   8        0 1172112984 sda
   8        1     204800 sda1
   8        2    1025024 sda2
   8        4 1170880512 sda4
   8       16  234431064 sdb
   8       17     204800 sdb1
   8       18    1025024 sdb2
   8       20  233199616 sdb4
 253        0    8388608 dm-0
 253        1   20971520 dm-1
 253        2    2097152 dm-2
   9      127    1024960 md127
   9        0    1024960 md0
 253        3    1048576 dm-3
 253        4   31457280 dm-4
 253        5    9048064 dm-5
 253        6    4481024 dm-6
 253        7   53780480 dm-7
 253        8   22323200 dm-8
 147        5    1048508 drbd5
 253        9   22323200 dm-9

进行partprobe更新Linux内核的分区表信息

[root@node0 ~]# partprobe  -s
/dev/sda: gpt partitions 1 2 4 5
/dev/sdb: gpt partitions 1 2 4
/dev/mapper/everrunhwOXPo.91QE-centos7_a188eafe--ec62--4538--9628--7a7780f52758_node0: msdos partitions 2
/dev/mapper/everrunhwOXPo.91QE-cent0s8_7ae5eff6--20fe--4c34--852f--c512ddcab80f_node0: msdos partitions 2

删除分区的信息直接相同操作把新增的n参数改选为d其他操作一样

3、磁盘格式化

通过命令:mkfs.xfs(xfs文件系统)相当于mkfs -t xfs、mkfs.ext4(ext4文件系统)等

mkfs.xfs /dev/sda5

4、文件系统挂载与卸载

挂载前要注意的事项:

单一文件不应该被重复挂载在不同的挂载点里

单一目录不应该重复挂载多个文件

要作为挂载点的目录,理论上应该都是空白目录才行否则原来目录下的文件会隐藏

# mount /dev/sda5 /test  #将分区sda5挂载到刚建立的目录test上,一定要先格式化文件系统才能挂载
# mount UUID=''  /test   #也可以用UUID来进行挂载

文件系统卸载
#unmount  设备文件名或挂载点均可

5、设置启动自动挂载

设置启动自动挂载进入到/etc/fstab这个文件修改文件内容具体如下

文件字段
#Dvice                Mount point   filesystem   parameters              dump          fsck

[设备名/UUID/lable名] [挂载点]       [文件系统类型] [文件系统参数默认default][备份命令默认0][0]

6、parted分区操作

[root@node0~]#parted [设备] [命令][参数]

parted /dev/vda print  #列出目前本机的分区表信息

命令功能:
       新增分区:mkpart [primary|logical|Extended]  [ext4|vfat|xfs]  开始  结束
       显示分区:print
       删除分区:rm [partition]

parted分区操作因为不需要人机交互所以在写脚本的时候非常适用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值