
RAID 独立磁盘冗余阵列(Redundant Array of Independent Disks)
高效的数据组织和条带化的并行访问
1.1 RAID 数据组织的形式条带:硬盘中单个或多个连续的扇区,是一块硬盘进行一次数据读写的最小单元
分条:同一个硬盘的阵列中,有多个硬盘驱动器上相同位置编号的条带
raid分为软件raid和硬件raid ,硬件raid需要raid卡
1.2 RAID数据保护方式1、在另外一块冗余的硬盘上保存副本
2、奇偶校验算法
1.3 RAID常用级别Raid 0 用在UI数据安全要求不高,但是要求廉价,高利用率的情况下
Raid 1 主要通过二次读写,实现镜像磁盘,在数据安全很重要的场所使用
Raid 3 比Raid 0多了奇偶检验,多一块磁盘,但是数据冗余性好
Raid 5 *每个磁盘都能存检验,有几个盘就你能产生几个读写盘,比Raid 3减少一个检验盘
Raid 6 Raid 6 P+Q 、RAID6 DP 两种校验算法,至少需要N+2个磁盘来构成阵列,一般用在数据可靠性极高,可用性极高的场所
Raid 10 将镜像Raid和条带进行组合,先进行Raid 1镜像,然后再做Raid 0
Raid 50 使用了Raid 5 和Raid 0来混合使用,第一级Raid 5,第二级是raid 0
RAID 的两种备份方法:热备和重构
1.4 RAID 的状态1、创建Raid
2、创建成功,Raid正常工作
3、发生故障,Raid降级等待
4、假设重构成功,则回到2状态
5、如果失败则raid直接失效
1.6 RAID实验 1.6.1 RAID 10实验通过linux服务器添加4块新硬盘,完成Raid10的部署
#查看目前系统的硬盘情况 [root@wentan ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 6.6G 0 rom /run/media/root/RHEL-8-0-0-baseOS-x86_64 nvme0n1 259:0 0 25G 0 disk ├─nvme0n1p1 259:1 0 1G 0 part /boot └─nvme0n1p2 259:2 0 24G 0 part ├─rhel-root 253:0 0 22G 0 lvm / └─rhel-swap 253:1 0 2G 0 lvm [SWAP] nvme0n2 259:3 0 20G 0 disk nvme0n3 259:4 0 20G 0 disk nvme0n4 259:5 0 20G 0 disk nvme0n5 259:6 0 20G 0 disk
mdadm 命令的常用参数及作用
[root@wentan ~]# mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/nvme0n2 /dev/nvme0n3 /dev/nvme0n4 /dev/nvme0n5
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
#查看四块硬盘Raid等级
[root@wentan ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 6.6G 0 rom /run/media/root/RHEL-8-0-0-baseOS-x86_64
nvme0n1 259:0 0 25G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 24G 0 part
├─rhel-root 253:0 0 22G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
nvme0n2 259:3 0 20G 0 disk
└─md0 9:0 0 40G 0 raid10
nvme0n3 259:4 0 20G 0 disk
└─md0 9:0 0 40G 0 raid10
nvme0n4 259:5 0 20G 0 disk
└─md0 9:0 0 40G 0 raid10
nvme0n5 259:6 0 20G 0 disk
└─md0 9:0 0 40G 0 raid10
#把/dev/md0格式化成ext4文件系统
[root@wentan ~]# mkfs.ext4 /dev/md0
mke2fs 1.44.3 (10-July-2018)
Creating filesystem with 10477056 4k blocks and 2621440 inodes
Filesystem UUID: e1feb5ef-c7f1-4189-a976-d9661edcbfb9
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624
Allocating group tables: done
Writing inode tables: done
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done
#创建挂载点,把硬盘设备挂载到挂载点
[root@wentan ~]# mkdir /RAID
[root@wentan ~]# mount /dev/md0 /RAID
[root@wentan ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 10M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/rhel-root 22G 4.2G 18G 19% /
/dev/nvme0n1p1 1014M 169M 846M 17% /boot
tmpfs 376M 16K 376M 1% /run/user/42
tmpfs 376M 2.3M 374M 1% /run/user/0
/dev/sr0 6.7G 6.7G 0 100% /run/media/root/RHEL-8-0-0-baseOS-x86_64
/dev/md0 40G 49M 38G 1% /RAID
#通过—D命令查看详细信息
[root@wentan RAID]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Jan 16 11:41:10 2022
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Sun Jan 16 11:47:08 2022
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : wentan:0 (local to host wentan)
UUID : 096170c1:5b9e7606:f4e8c353:cd0c020e
Events : 19
Number Major Minor RaidDevice State
0 259 3 0 active sync set-A /dev/nvme0n2
1 259 4 1 active sync set-B /dev/nvme0n3
2 259 5 2 active sync set-A /dev/nvme0n4
3 259 6 3 active sync set-B /dev/nvme0n5
当确认无误后,我们需要对系统做永久挂载,永久挂载配置文件 /etc/fstab
[root@wentan RAID]# vim /etc/fstab /dev/md0 /RAID ext4 defaults 0 0 #最后一行加入以上信息,完成后务必mount -a 保存配置文件没有问题,如果报错 必须回去修改配置文件 [root@wentan RAID]# mount -a1.6.2 RAID 10 损坏磁阵列及修复
在确认有一块物理硬盘设备出现损坏而不能继续正常使用后,应该使用mdadm命令将其移除,然后查看RAID磁盘阵列的状态,可以发现状态已经改变。
#首先我们手动损坏一块硬盘
[root@wentan RAID]# mdadm /dev/md0 -f /dev/nvme0n3
mdadm: set /dev/nvme0n3 faulty in /dev/md0
[root@wentan RAID]# mdadm -D /dev/md0
Number Major Minor RaidDevice State
0 259 3 0 active sync set-A /dev/nvme0n2
- 0 0 1 removed
2 259 5 2 active sync set-A /dev/nvme0n4
3 259 6 3 active sync set-B /dev/nvme0n5
1 259 4 - faulty /dev/nvme0n3
在Raid 10级别的磁盘阵列中,当RAID 1磁盘阵列中存在一个故障盘时并不影响RAID 10磁盘阵列的使用。当购买了新的硬盘设备后再使用mdadm命令来予以替换即可,在此期间我们可以在/RAID目录中正常地创建或删除文件。由于我们是在虚拟机中模拟硬盘,所以先重启系统,然后再把新的硬盘添加到RAID磁盘阵列中。
#取消挂载
[root@wentan ~]# umount /RAID
#添加新的磁盘
[root@wentan ~]# mdadm /dev/md0 -a /dev/nvme0n3
mdadm: added /dev/nvme0n3
Number Major Minor RaidDevice State
0 259 3 0 active sync set-A /dev/nvme0n2
4 259 4 1 spare rebuilding /dev/nvme0n3
2 259 5 2 active sync set-A /dev/nvme0n4
3 259 6 3 active sync set-B /dev/nvme0n5
#此时发现新添加的硬盘正在重构,最后可以 mount -a 把刚刚的挂载挂上去
[root@wentan ~]# mount -a
1.6.3 RAID 50 磁盘阵列+备份盘
为了避免多个实验之间相互发生冲突,我们需要保证每个实验的相对独立性,为此需要大家自行将虚拟机还原到初始状态。
部署RAID 5磁盘阵列时,至少需要用到3块硬盘,还需要再加一块备份硬盘,所以总计需要在虚拟机中模拟4块硬盘设备
现在创建一个RAID 5磁盘阵列+备份盘。在下面的命令中,参数-n 3代表创建这个RAID 5磁盘阵列所需的硬盘数,参数-l 5代表RAID的级别,而参数-x 1则代表有一块备份盘。当查看/dev/md0(即RAID 5磁盘阵列的名称)磁盘阵列的时候就能看到有一块备份盘在等待中了。
[root@wentan ~]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/nvme0n2 /dev/nvme0n3 /dev/nvme0n4 /dev/nvme0n5
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
#查看磁盘状态,有一块备份盘
[root@wentan ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Jan 16 13:50:08 2022
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Sun Jan 16 13:51:57 2022
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : wentan:0 (local to host wentan)
UUID : 0d7fd374:a2001c3d:737de6c9:d3baae39
Events : 18
Number Major Minor RaidDevice State
0 259 3 0 active sync /dev/nvme0n2
1 259 4 1 active sync /dev/nvme0n3
4 259 5 2 active sync /dev/nvme0n4
3 259 6 - spare /dev/nvme0n5
#把/dev/md0格式化成ext4文件系统
[root@wentan ~]# mkfs.ext4 /dev/md0
mke2fs 1.44.3 (10-July-2018)
Creating filesystem with 10477056 4k blocks and 2621440 inodes
Filesystem UUID: 68f42614-5bd2-40d5-88ee-99cd714d3ad0
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624
Allocating group tables: done
Writing inode tables: done
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done
#创建挂载点,把硬盘设备挂载到挂载点
[root@wentan ~]# mkdir /RAID
[root@wentan ~]# echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab
#挂载
[root@wentan ~]# mount -a
[root@wentan ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/md0 40G 49M 38G 1% /RAID
1.6.4 RAID 50 损坏磁盘
#手动损坏一块硬盘 [root@wentan ~]# mdadm /dev/md0 -f /dev/nvme0n3 mdadm: set /dev/nvme0n3 faulty in /dev/md0 [root@wentan ~]# mdadm -D /dev/md0 Number Major Minor RaidDevice State 0 259 3 0 active sync /dev/nvme0n2 3 259 6 1 spare rebuilding /dev/nvme0n5 4 259 5 2 active sync /dev/nvme0n4 1 259 4 - faulty /dev/nvme0n3 #备份硬盘自动顶上 开始重构。二、磁盘管理 2.1 分区
将磁盘划分为多个逻辑上的存储单元,这些单元称之为分区,对不同的分区,执行不同的功能
为了让系统能够识别和管理物理设备上的不同分区,需要在物理设备前加上一些数据用于记录分区的情况,这些数据就是分区表数据,目前分区表有两种主流的格式:
2.2.1MBR分区类型: 主分区、扩展分区、 逻辑分区
限制:最多只有四个主分区,而且硬盘最大是2TB
管理的硬盘大小不能超过2T
有主分区和扩展分区两种,不管是哪种分区,总数不能超过4个分区
扩展分区内部可以逻辑上划分多个区域,但是在分区表中都算在一个分区内
如果作为系统盘,必须要设置一个激活分区,用于存放系统的引导文件
2.2.2 GPT
提供使用全局唯一的GUID来识别磁盘和分区
提供分区表备份功能,主GPT位于磁盘头部,备份GPT位于磁盘尾部
限制:最多128个分区 磁盘最大8ZIB
2.2 分区工具(1)fdisk(适合MBR)
(2)gdisk (适合GPT)
(3)parted (全适合)
2.3 分区实验 2.3.1 实验一 使用parted 来做磁盘分区首先从VMWare加入一块nvme的硬盘到虚拟机上
#首先查看增加的这块硬盘的名称 p[root@wentan ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 6.6G 0 rom /run/media/wentan/RHEL-8-0-0-baseOS-x86_64 nvme0n1 259:0 0 25G 0 disk ├─nvme0n1p1 259:1 0 1G 0 part /boot └─nvme0n1p2 259:2 0 24G 0 part ├─rhel-root 253:0 0 22G 0 lvm / └─rhel-swap 253:1 0 2G 0 lvm [SWAP] nvme0n2 259:3 0 20G 0 disk #通过命令查看,硬盘已经存在 名字叫nvme0n2 #注意磁盘的位置在/dev/目录下 #使用分区工具parted [root@wentan ~]# parted /dev/nvme0n2 GNU Parted 3.2 Using /dev/nvme0n2 Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) help align-check TYPE N check partition N for TYPE(min|opt) alignment help [COMMAND] print general help, or help on COMMAND mklabel,mktable LABEL-TYPE create a new disklabel (partition table) mkpart PART-TYPE [FS-TYPE] START END make a partition name NUMBER NAME name partition NUMBER as NAME print [devices|free|list,all|NUMBER] display the partition table, available devices, free space, all found partitions, or a particular partition quit exit program rescue START END rescue a lost partition near START and END resizepart NUMBER END resize partition NUMBER rm NUMBER delete partition NUMBER select DEVICE choose the device to edit disk_set FLAG STATE change the FLAG on selected device disk_toggle [FLAG] toggle the state of FLAG on selected device set NUMBER FLAG STATE change the FLAG on partition NUMBER toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER unit UNIT set the default unit to UNIT version display the version number and copyright information of GNU Parted #首先因为我们这块磁盘没有定义磁盘类型 (parted) print Error: /dev/nvme0n2: unrecognised disk label Model: NVMe Device (nvme) Disk /dev/nvme0n2: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: unknown #磁盘报错,因为没有选择磁盘类型 (parted) mklabel New disk label type? msdos #使用mklabel,把这块磁盘类型变成msdos(MBR) 或者gpt (parted) print Model: NVMe Device (nvme) Disk /dev/nvme0n2: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags #此时我们已经选好了磁盘类型,print可以查看磁盘的相关配置,接下来可以开始做分区 (parted) mkpart Partition type? primary/extended? primary File system type? [ext2]? xfs Start? 1M End? 2048M #检查分区是否完成 (parted) print Model: NVMe Device (nvme) Disk /dev/nvme0n2: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 2048MB 2047MB primary xfs lba #接着可以创建第二块磁盘 (parted) mkpart Partition type? primary/extended? primary File system type? [ext2]? ext2 Start? 2049M End? 10241M (parted) print Model: NVMe Device (nvme) Disk /dev/nvme0n2: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 2048MB 2047MB primary 2 2049MB 10.2GB 8193MB primary ext2 lba #如何删除磁盘 rm Number #即可直接把一块分区删除 rm 1 rm 2 quit退出
关于parted *** 作命令
cp [FROM-DEVICE] FROM-MINOR TO-MINOR #将文件系统复制到另一个分区 help [COMMAND] #打印通用求助信息,或关于 COMMAND 的信息 mklabel 标签类型 #创建新的磁盘标签 (分区表) mkfs MINOR 文件系统类型 #在 MINOR 创建类型为“文件系统类型”的文件系统 mkpart 分区类型 [文件系统类型] 起始点 终止点 #创建一个分区 mkpartfs 分区类型 文件系统类型 起始点 终止点 #创建一个带有文件系统的分区 move MINOR 起始点 终止点 #移动编号为 MINOR 的分区 name MINOR 名称 #将编号为 MINOR 的分区命名为“名称” print [MINOR] #打印分区表,或者分区 quit #退出程序 rescue 起始点 终止点 #挽救临近“起始点”、“终止点”的遗失的分区 resize MINOR 起始点 终止点 #改变位于编号为 MINOR 的分区中文件系统的大小 rm MINOR #删除编号为 MINOR 的分区 select 设备 #选择要编辑的设备 set MINOR 标志 状态 #改变编号为 MINOR 的分区的标志2.3.2 实验二 使用fdisk来做磁盘分区
fdisk不是实时的,最后一定要输入w保存,所以Be careful before using the write command。
#首先可以fdisk -l 查看所有磁盘的状态
[root@wentan ~]# fdisk -l
# 使用fdisk来创建磁盘
[root@wentan ~]# fdisk /dev/nvme0n2
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
# 输入m来获取命令帮助
# Command (m for help): m
Help:
DOS (MBR)
a toggle a bootable flag
b edit nested BSD disklabel
c toggle the dos compatibility flag
Generic
d delete a partition
F list free unpartitioned space
l list known partition types
n add a new partition
p print the partition table
t change a partition type
v verify the partition table
i print information about a partition
Misc
m print this menu
u change display/entry units
x extra functionality (experts only)
script
I load disk layout from sfdisk script file
O dump disk layout to sfdisk script file
Save & Exit
w write table to disk and exit
q quit without saving changes
Create a new label
g create a new empty GPT partition table
G create a new empty SGI (IRIX) partition table
o create a new empty DOS partition table
s create a new empty Sun partition table
#首先要查看一下目前这块磁盘的分区
# Command (m for help):p
Disk /dev/nvme0n2: 20 GiB, 21474836480 bytes, 41943040 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
Disklabel type: dos
Disk identifier: 0x3bb7df1a
#接着开始创建分区
# Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048):
#这边直接默认,就是从起始位置开始的
Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039): +5G
#这边可以使用+大小的方式,不用计算结束位置
Created a new partition 1 of type 'Linux' and of size 5 GiB.
#检查分区是否创建成功
# Command (m for help): p
Disk /dev/nvme0n2: 20 GiB, 21474836480 bytes, 41943040 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
Disklabel type: dos
Disk identifier: 0x3bb7df1a
Device Boot Start End Sectors Size Id Type
/dev/nvme0n2p1 2048 10487807 10485760 5G 83 Linux
#分区1已结创建成功,就下来创建一个10G的主分区2
#Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (10487808-41943039, default 10487808):
Last sector, +sectors or +size{K,M,G,T,P} (10487808-41943039, default 41943039): +10G
Created a new partition 2 of type 'Linux' and of size 10 GiB.
#Command (m for help): p
Disk /dev/nvme0n2: 20 GiB, 21474836480 bytes, 41943040 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
Disklabel type: dos
Disk identifier: 0x3bb7df1a
Device Boot Start End Sectors Size Id Type
/dev/nvme0n2p1 2048 10487807 10485760 5G 83 Linux
/dev/nvme0n2p2 10487808 31459327 20971520 10G 83 Linux
#分区2也创建成功
#删除分区
#Command (m for help): d
Partition number (1,2, default 2): 2
Partition 2 has been deleted.
#Command (m for help): p
Disk /dev/nvme0n2: 20 GiB, 21474836480 bytes, 41943040 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
Disklabel type: dos
Disk identifier: 0x3bb7df1a
Device Boot Start End Sectors Size Id Type
/dev/nvme0n2p1 2048 10487807 10485760 5G 83 Linux
#保存
# Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
#注意:fdisk是不会把分区直接做成文件系统的,fdisk做出来的分区需要手动做成文件系统
#制作文件系统
[root@wentan ~]# mkfs.ext4 /dev/nvme0n2p1
mke2fs 1.44.3 (10-July-2018)
Creating filesystem with 1310720 4k blocks and 327680 inodes
Filesystem UUID: 80c65106-61fe-4c95-a5f8-00093b4185fb
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
#我们也可以修改一个分区的文件系统(格式化命令)
#注意:里面所有内容全都没了
[root@wentan ~]# mkfs.xfs -f /dev/nvme0n2p1
meta-data=/dev/nvme0n2p1 isize=512 agcount=4, agsize=327680 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=1310720, 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
fdisk命令中的参数以及作用
(1)首先会从硬盘中读取BootLoader,然后将整个系统控制权交给BootLoader,红帽系统的BootLoader 叫做GRUB
(2)GRUB 会加载 /boot/grub2/grub.cfg 配置文件会选择启动内核
(3)GRUB会加载内核,并且放到内存里面,然后启动硬件模块初始化脚本
(4)BootLoader 会把控制权交给内核,内核开始找各种驱动,并且初始化这些硬件
(5)在RHEL系统中,会启动systemd执行所有的目标单元
(6)还会将root文件系统中的挂载 /etc/fstab 配置运行
(7)内核根据我们的文件系统,切换到 /sysroot 的根文件系统
(8)systemd 会使用硬盘中安装的system来重新执行
(9)systemd 最终会查找默认的启动目标 target,最后启动一个基于文化或者图形化的界面
3.3 强制破解Linux服务器开机密码实验1.重启系统
2.将光标移动到要启动的内核
3.按e来编辑
4.在linux开头的行的末尾输入rd.break
5.ctrl+x继续启动,自动进入swith_root
重置密码:
1.重启以读写的方式挂载/sysroot
命令:mount -o remount,rw /sysroot
2.切换到真正 *** 作系统的根/sysroot
命令:chroot /sysroot
3.重置密码:
命令:echo 123456 |passwd --stdin root
4.打标签:
命令:touch /.autorelabel
exit退出两次
此时root密码已被修改为123456
四、物理设备的命名规则 4.1 常见的硬件设备及其文件名称Linux mkfs(英文全拼:make file system)命令用于在特定的分区上建立 linux 文件系统。
格式:
mkfs [-V] [-t fstype] [fs-options] filesys [blocks]
选项:
device #预备检查的硬盘分区,例如:/dev/sda1 -V #详细显示模式 -t #给定档案系统的型式,Linux 的预设值为 ext2 -c #在制做档案系统前,检查该partition 是否有坏轨 -l bad_blocks_file #将有坏轨的block资料加到 bad_blocks_file 里面 block #给定 block 的大小五、文件系统与数据资料
文件系统的作用是合理规划硬盘,以保证用户正常的使用需求。Linux系统支持数十种的文件系统,而最常见的文件系统如下所示。
格式化文件系统会发生什么事情?
Linux创建一个硬盘地图 superblock,记录此filesystem 的整体信息,包括inode/block的总量、使用量、剩余量, 以及文件系统的格式与相关信息等;
inode记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的block 号码,默认一个inode表格128字节,一个block记录消耗4B,记录满了后会新建inode用于扩展。
该文件的访问权限(read、write、execute); 该文件的所有者与所属组(owner、group); 该文件的大小(size); 该文件的创建或内容修改时间(ctime); 该文件的最后一次访问时间(atime); 该文件的修改时间(mtime); 文件的特殊权限(SUID、SGID、SBIT); 该文件的真实数据地址(point)。 block:用于存储数据
计算机系统在发展过程中产生了众多的文件系统,为了使用户在读取或写入文件时不用关心底层的硬盘结构,Linux内核中的软件层为用户程序提供了一个VFS(Virtual File System,虚拟文件系统)接口,这样用户实际上在 *** 作文件时就是统一对这个虚拟文件系统进行 *** 作了。
六、swap分区swap分区:交换分区
内核使用交换分区,保存内容中暂时不活动的数据,如果内核重新访问这部分数据,会将这部分数据重新写入内存,类似于windows的虚拟内存、缓存
swap消耗的是硬盘容量
作为linux管理员我们应该根据系统的工作负载来决定swap分区到底应该给多少
添加swap分区,文件类型要设置为linux-swap 该文件系统最好是msdos
实例
#查看系统内存,会发现swap存在
[root@wentan ~]# free
total used free shared buff/cache available
Mem: 3848776 1445308 1493312 12936 910156 2143676
Swap: 2146300 0 2146300
七、文件系统修复工具
7.1 fsck 工具
针对ext系列文件系统
fsck #文件系统检查修复 -v #详细修复 -a #自动修复 -r #交互式修复 [root@wentan ~]# fsck /dev/nvme0n1p17.2 e2fsck 工具
针对ext系列文件系统
e2fsck #文件系统检测修复工具 -y #自动修复 -g #强制修复 [root@wentan ~]# e2fsck /dev/nvme0n1p17.3 xfs_repair 工具
针对xfs文件系统
xfs_repair 设备名 #自动检测修复工具 [root@wentan ~]#xfs_repair /dev/nvme0n1p1 #修复这个磁盘的文件系统
关注公众号:问渠清源
回复关键字 视频 获取视频教程
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)