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  *    使用了raid5raid0来混合使用  第一级是raid5  第二级是raid0 

 

 

RAID  的两种备份方法        

热备   

重构

 

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,把这块磁盘类型变成msdosMBR 或者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.将光标移动到要启动的内核

3e来编辑

4linux开头的行的末位  输入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 的大小

 

posted @ 2022-02-12 20:01  终究还是避免不了遗憾  阅读(356)  评论(0编辑  收藏  举报