Linux基础-磁盘
磁盘阵
高效的数据组织和条带化的并行访问
独立硬盘冗余阵列
RAID redundant array of independent disks
RAID数据组织的形式
条带: 硬盘中单个或多个连续的扇区,是一块硬盘进行一次数据读写的最小单元
分条: 同一个硬盘的阵列中,有多个硬盘驱动器上相同位置编号的条带
raid分为软件raid 和硬件raid
硬件raid需要raid卡
RAID数据保护方式:
• 在另外一块冗余的硬盘上保存副本
• 奇偶校验算法
RAID常用级别 特性
RAID 0 用在UI数据安全要求不高 但是要求廉价 高利用率的情况下
RAID 1 主要通过二次读写,实现镜像磁盘 在数据安全很重要的场所使用
RAID 3 比RAID0 多了个奇偶校验 多一块磁盘 但是数据冗余性好
RAID 5 *每个磁盘都能存校验 ,有几个盘就能产生几个读写盘 比raid3 减少一个校验盘
RAID 6 RAID6 P+Q RAID6 DP 两种校验算法 至少需要N+2 个磁盘来构成阵列,一般用在数据可靠性极高,可用性极高的场所
RAID 10 将镜像raid 和条带进行组合 先进性raid1 镜像 然后再做raid0
RAID 50 * 使用了raid5和raid0来混合使用 第一级是raid5 第二级是raid0
RAID 的两种备份方法
1 热备
2 重构
RAID状态:
• 创建raid
• 创建成功 raid正常工作
• 发生故障 raid降级等待
• 假设重构成功 则回到2状态
• 如果失败则raid直接失效
RAID实验:通过linux服务器 添加四块新硬盘 完成raid 10的部署
[root@rhel8-server ~]# 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 20G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 19G 0 part
├─rhel-root 253:0 0 17G 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命令的常用参数以及作用
参数
作用
-a
检测设备名称
-n
指定设备数量
-l
指定RAID级别
-C
创建
-v
显示过程
-f
模拟设备损坏
-r
移除设备
-Q
查看摘要信息
-D
查看详细信息
-S
停止RAID磁盘阵列
[root@rhel8-server ~]# 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.
[root@rhel8-server ~]# lsblk 查看四块硬盘raid等级
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 20G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 19G 0 part
├─rhel-root 253:0 0 17G 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
[root@rhel8-server ~]# mkfs.ext4 /dev/md0 把dev/md0 格式化成了ext4文件系统
mke2fs 1.44.3 (10-July-2018)
Creating filesystem with 10477056 4k blocks and 2621440 inodes
Filesystem UUID: e8aef858-ace4-43c6-9949-917eea035134
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@rhel8-server ~]# mkdir /RAID 创建挂载点
[root@rhel8-server ~]# mount /dev/md0 /RAID 把硬盘设备挂载到挂载点
[root@rhel8-server ~]# 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 17G 4.0G 14G 24% /
/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
[root@rhel8-server RAID]# mdadm -D /dev/md0 通过-D来查看磁盘阵列详细信息确认无误
/dev/md0:
Version : 1.2
Creation Time : Sat Jan 15 22:41:06 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 : Sat Jan 15 22:46:53 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 : rhel8-server:0 (local to host rhel8-server)
UUID : 9fd06c28:af2e0d36:eb1a09bb:9fc11b9b
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@rhel8-server RAID]# vim /etc/fstab
[root@rhel8-server RAID]#
[root@rhel8-server RAID]#
[root@rhel8-server RAID]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri Jan 7 22:26:04 2022
#
# 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.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/rhel-root / xfs defaults 0 0
UUID=7002282d-fea0-4380-9a2b-6495aba65ee6 /boot xfs defaults 0 0
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/md0 /RAID ext4 defaults 0 0
最后一行加入以上信息
完成后务必 mount -a 保证配置文件没有问题 如果报错 必须回去修改配置文件
损坏磁盘阵列及修复
在确认有一块物理硬盘设备出现损坏而不能继续正常使用后,应该使用mdadm命令将其移除,然后查看RAID磁盘阵列的状态,可以发现状态已经改变。
[root@rhel8-server RAID]# mdadm /dev/md0 -f /dev/nvme0n3
首先我们手动损坏一块硬盘
mdadm: set /dev/nvme0n3 faulty in /dev/md0
[root@rhel8-server RAID]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sat Jan 15 22:41:06 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 00:32:30 2022
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 1
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : rhel8-server:0 (local to host rhel8-server)
UUID : 9fd06c28:af2e0d36:eb1a09bb:9fc11b9b
Events : 23
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@rhel8-server ~]# mdadm /dev/md0 -a /dev/nvme0n3 添加新的磁盘
mdadm: added /dev/nvme0n3
[root@rhel8-server ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sat Jan 15 22:41:06 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 00:38:13 2022
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Rebuild Status : 20% complete
Name : rhel8-server:0 (local to host rhel8-server)
UUID : 9fd06c28:af2e0d36:eb1a09bb:9fc11b9b
Events : 34
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 来把刚刚的挂载挂上去
磁盘阵列+备份盘
为了避免多个实验之间相互发生冲突,我们需要保证每个实验的相对独立性,为此需要大家自行将虚拟机还原到初始状态。
部署RAID 5磁盘阵列时,至少需要用到3块硬盘,还需要再加一块备份硬盘,所以总计需要在虚拟机中模拟4块硬盘设备
现在创建一个RAID 5磁盘阵列+备份盘。在下面的命令中,参数-n 3代表创建这个RAID 5磁盘阵列所需的硬盘数,参数-l 5代表RAID的级别,而参数-x 1则代表有一块备份盘。当查看/dev/md0(即RAID 5磁盘阵列的名称)磁盘阵列的时候就能看到有一块备份盘在等待中了。
[root@Rhel8-server ~]# 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@Rhel8-server ~]# mdadm -D /dev/md0 此时我们查看状态 发现有一块备份盘
/dev/md0:
Version : 1.2
Creation Time : Sun Jan 16 00:49:59 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 00:51:43 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 : Rhel8-server:0 (local to host Rhel8-server)
UUID : 979697a4:91ab01f9:0c473946:eae30a37
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
[root@Rhel8-server ~]# mkfs.ext4 /dev/md0
mke2fs 1.44.3 (10-July-2018)
Creating filesystem with 10477056 4k blocks and 2621440 inodes
Filesystem UUID: 49cb7391-3773-4b16-b440-05e58bc8590f
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@Rhel8-server ~]# mkdir /RAID
[root@Rhel8-server ~]# echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab
[root@Rhel8-server ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri Jan 7 22:26:04 2022
#
# 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.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/rhel-root / xfs defaults 0 0
UUID=7002282d-fea0-4380-9a2b-6495aba65ee6 /boot xfs defaults 0 0
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/md0 /RAID ext4 defaults 0 0
[root@Rhel8-server ~]# mount -a
[root@Rhel8-server ~]# mdadm /dev/md0 -f /dev/nvme0n3 手动损坏一块硬盘
mdadm: set /dev/nvme0n3 faulty in /dev/md0
[root@Rhel8-server ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Jan 16 00:49:59 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 01:02:49 2022
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 3
Failed Devices : 1
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Rebuild Status : 10% complete
Name : Rhel8-server:0 (local to host Rhel8-server)
UUID : 979697a4:91ab01f9:0c473946:eae30a37
Events : 24
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
备份硬盘自动顶上 开始重构。
磁盘管理
分区: 将磁盘划分为多个逻辑上的存储单元,这些单元称之为分区,对不同的分区,执行不同的功能
为了让系统能够识别和管理物理设备上的不同分区,需要在物理设备前加上一些数据用于记录分区的情况,这些数据就是分区表数据,目前分区表有两种主流的格式:
MBR
分区类型: 主分区 扩展分区 逻辑分区
限制:最多只有四个主分区,而且硬盘最大是2TB
管理的硬盘大小不能超过2T
有主分区和扩展分区两种,不管是哪种分区,总数不能超过4个分区
扩展分区内部可以逻辑上划分多个区域,但是在分区表中都算在一个分区内
如果作为系统盘,必须要设置一个激活分区,用于存放系统的引导文件
GPT:提供使用全局唯一的GUID来识别磁盘和分区
提供分区表备份功能,主GPT位于磁盘头部,备份GPT位于磁盘尾部
限制:最多128个分区 磁盘最大8ZIB
分区工具 : fdisk(适合MBR) gdisk (适合GPT) parted (全适合)
实验1使用parted来做磁盘分区
首先从vmware加入一块nvme的硬盘到虚拟机上
[root@192 ~]# 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 20G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 19G 0 part
├─rhel-root 253:0 0 17G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
nvme0n2 259:3 0 20G 0 disk
通过命令查看,硬盘已经存在 名字叫nvme0n2
使用分区工具parted
parted的操作都是实时生效的,小心使用 !!!!
实验1使用parted来做磁盘分区
首先从VMware加入一块nvme的磁盘到rhel虚拟机上
[root@example ~]# 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 20G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 19G 0 part
├─rhel-root 253:0 0 17G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
nvme0n2 259:3 0 20G 0 disk
通过命令查看,磁盘已经存在 名字叫nvme0n2
注意磁盘的位置在/dev/目录下
使用分区工具parted
[root@example dev]# 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使用fdisk来做磁盘分区
fdisk不是实时的,最后一定要输入w命令保存,所以Be careful before using the write command
首先可以fdisk -l 查看所有磁盘的状态
[root@example dev]# fdisk /dev/nvme0n2 使用fdisk来创建磁盘
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.
Command (m for help): m 输入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: 0xba92ef52
接着开始创建分区
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): +2G
//这边可以使用+大小的方式,不用计算结束位置
Created a new partition 1 of type 'Linux' and of size 2 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: 0xba92ef52
Device Boot Start End Sectors Size Id Type
/dev/nvme0n2p1 2048 4196351 4194304 2G 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 (4196352-41943039, default 4196352):
Last sector, +sectors or +size{K,M,G,T,P} (4196352-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: 0xba92ef52
Device Boot Start End Sectors Size Id Type
/dev/nvme0n2p1 2048 4196351 4194304 2G 83 Linux
/dev/nvme0n2p2 4196352 25167871 20971520 10G 83 Linux
分区2也创建成功
分区的删除:
Command (m for help): d
Partition number (1,2, default 2): 1
Partition 1 has been deleted.
Command (m for help): d
Selected partition 2
Partition 2 has been deleted.
注意:fdisk是不会把分区直接做成文件系统的,fdisk做出来的分区需要手动做成文件系统
[root@192 ~]# mkfs.ext4 /dev/nvme0n2p1
mke2fs 1.44.3 (10-July-2018)
Creating filesystem with 1310720 4k blocks and 327680 inodes
Filesystem UUID: a9ee1dee-0997-497f-8684-8b218dcf42e0
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@192 ~]# 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命令中的参数以及作用
参数作用
m
查看全部可用的参数
n
添加新的分区
d
删除某个分区信息
l
列出所有可用的分区类型
t
改变某个分区的类型
p
查看分区信息
w
保存并退出
q
不保存直接退出
存储结构与磁盘划分
Linux系统中常见的目录名称以及相应内容
目录名称
应放置文件的内容
/boot
开机所需文件—内核、开机菜单以及所需配置文件等
/dev
以文件形式存放任何设备与接口
/etc
配置文件
/home
用户家目录
/bin
存放单用户模式下还可以操作的命令
/lib
开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数
/sbin
开机过程中需要的命令
/media
用于挂载设备文件的目录
/opt
放置第三方的软件
/root
系统管理员的家目录
/srv
一些网络服务的数据文件目录
/tmp
任何人均可使用的“共享”临时目录
/proc
虚拟文件系统,例如系统内核、进程、外部设备及网络状态等
/usr/local
用户自行安装的软件
/usr/sbin
Linux系统开机时不会使用到的软件/命令/脚本
/usr/share
帮助与说明文件,也可放置共享文件
/var
主要存放经常变化的文件,如日志
/lost+found
当文件系统发生错误时,将一些丢失的文件片段存放在这里
Linux开机流程:
首先会从硬盘去读取 BOOT loader 然后将整个系统控制权交给boot loader
红帽系统的 boot loader叫做 GRUB
GRUB 会加载 /boot/grub2/grub.cfg 配置文件会选择启动内核
GRUB 会加载内核 并且放到内存里面 然后启动硬件模块初始化脚本
boot loader 会把控制权交给内核 内核开始找各种驱动 并且初始化这些硬件
在RHEL系统中 回启动 systemd 执行所有的目标单元
还会将root文件系统中的挂载 /etc/fstab 配置运行
内核根据我们的文件系统,切换到 /sysroot 的根文件系统
systemd 会使用硬盘中安装的systemd来重新执行
systemd 最终会查找默认的启动目标 target 最后会启动一个基于文化或者图形化的界面
实验:强制破解linux服务器开机密码:(考试必考)
破解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退出两次
物理设备的命名规则
常见的硬件设备及其文件名称
硬件设备
文件名称
IDE设备
/dev/hd[a-d]
SCSI/SATA/
U盘
/dev/sd[a-p]
软驱
/dev/fd[0-1]
打印机
/dev/lp[0-15]
光驱
/dev/cdrom
鼠标
/dev/mouse
磁带机
/dev/st0或/dev/ht0
mkfs工具
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 的大小

浙公网安备 33010602011771号