Linux相关知识的第七回合

Linux相关知识的第七回合

Linux磁盘相关知识过招

破坏mbr表并修复

## 备份
# 将分区表导出,从/dev/sda中,跳过446字节备份64字节,skip跳过源文件446字节
dd if=/dev/sda of=/data/mbrbak.img bs=1 count=64 skip=446
# 查看备份文件
hexdump -C -v /data/mbrbak.img
# 备份到其他的服务器上
scp -rpP 10022 /data/mbrbak.img kfx@192.168.168.219:/home/kfx

## 破坏
# 破坏分区表并重启服务器,系统无法启动,seek跳过目标文件446字节
dd if=/dev/zero of=/dev/sda bs=1 count=64 seek=446
reboot

## 恢复
# CentOS8 用光盘启动,进入rescue mode模式,选第三项:skip to shell,设置IP地址,并将备份的文件恢复到服务器上
ifconfig eth0 192.168.168.211/24
scp -rpP 10022 kfx@192.168.168.219:/home/kfx/mbrbak.img ./
# 恢复分区表
dd if=mbrbak.img of=/dev/sda bs=1 count=64 seek=446
# 查看分区表
hexdump -C -n 512 -v /dev/sda
exit

总结RAID的各个级别及其组合方式和性能的不同

RAID区别
参考文献:
磁盘阵列RAID种类及对比
RAID 容量计算器

创建一个2G的文件系统,块大小为2048byte,预留1%可用空间,文件系统ext4,卷标为TEST,要求此分区开机后自动挂载至/test目录,且默认有acl挂载选项

使用WebVirtCloud为虚拟机添加一块硬盘

WebVirtCloud01
WebVirtCloud02
WebVirtCloud03

# 查看磁盘状态
[hooper@magedu-demo ~] $ sudo lsblk
NAME                         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda                          252:0    0  300G  0 disk
├─vda1                       252:1    0    1G  0 part /boot
└─vda2                       252:2    0  299G  0 part
  ├─centos_magedu--demo-root 253:0    0   50G  0 lvm  /
  ├─centos_magedu--demo-swap 253:1    0    8G  0 lvm  [SWAP]
  ├─centos_magedu--demo-home 253:2    0   41G  0 lvm  /home
  └─centos_magedu--demo-data 253:3    0  200G  0 lvm  /data
vdb                          252:16   0   30G  0 disk

# 在vdb磁盘上创建一个2G分区
## 这个是交互式创建分区
[hooper@magedu-demo ~] $ sudo fdisk /dev/vdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x3bddf424 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-62914559,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-62914559,默认为 62914559):+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

## 扩展:非交互式创建分区
echo -e "n\np\n1\n+2G\nw\n" | fdisk /dev/vdb
## 查看分区结果
[hooper@magedu-demo ~] $ sudo lsblk
NAME                         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda                          252:0    0  300G  0 disk
├─vda1                       252:1    0    1G  0 part /boot
└─vda2                       252:2    0  299G  0 part
  ├─centos_magedu--demo-root 253:0    0   50G  0 lvm  /
  ├─centos_magedu--demo-swap 253:1    0    8G  0 lvm  [SWAP]
  ├─centos_magedu--demo-home 253:2    0   41G  0 lvm  /home
  └─centos_magedu--demo-data 253:3    0  200G  0 lvm  /data
vdb                          252:16   0   30G  0 disk
└─vdb1                       252:17   0    2G  0 part

# 创建文件系统
[hooper@magedu-demo ~] $ sudo mkfs.ext4 -b 2048 -m 1 -L TEST /dev/vdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=TEST
OS type: Linux
块大小=2048 (log=1)
分块大小=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 1048576 blocks
10485 blocks (1.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=269484032
64 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
	16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816

Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

# -b 指定块大小;-m 指定管理员专用预留空间百分比;

# 查看参数生效
[hooper@magedu-demo ~] $ sudo tune2fs -l /dev/vdb1 | \grep -e name -e 'Block size' -e 'Block count' -e 'Reserved block count'
Filesystem volume name:   TEST
Block count:              1048576
Reserved block count:     10485
Block size:               2048

# 挂载目录
[hooper@magedu-demo ~] $ sudo mkdir /test
[hooper@magedu-demo ~] $ sudo mount /dev/vdb1 /test
[hooper@magedu-demo ~] $ lsblk
NAME                         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda                          252:0    0  300G  0 disk
├─vda1                       252:1    0    1G  0 part /boot
└─vda2                       252:2    0  299G  0 part
  ├─centos_magedu--demo-root 253:0    0   50G  0 lvm  /
  ├─centos_magedu--demo-swap 253:1    0    8G  0 lvm  [SWAP]
  ├─centos_magedu--demo-home 253:2    0   41G  0 lvm  /home
  └─centos_magedu--demo-data 253:3    0  200G  0 lvm  /data
vdb                          252:16   0   30G  0 disk
└─vdb1                       252:17   0    2G  0 part /test
[hooper@magedu-demo ~] $ df -h
文件系统                              容量  已用  可用 已用% 挂载点
devtmpfs                              1.9G     0  1.9G    0% /dev
tmpfs                                 1.9G     0  1.9G    0% /dev/shm
tmpfs                                 1.9G  8.6M  1.9G    1% /run
tmpfs                                 1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos_magedu--demo-root   50G  3.1G   47G    7% /
/dev/vda1                            1014M  189M  826M   19% /boot
/dev/mapper/centos_magedu--demo-data  200G  7.6G  193G    4% /data
/dev/mapper/centos_magedu--demo-home   41G  468M   41G    2% /home
tmpfs                                 379M     0  379M    0% /run/user/1000
/dev/vdb1                             2.0G  9.1M  1.9G    1% /test

# 添加开机自动挂载
[hooper@magedu-demo ~] $ sudo cp -rp /etc/fstab{,.`datebak`}
[hooper@magedu-demo ~] $ sudo vim /etc/fstab
######################################################################
/dev/vdb1                            /test                   ext4    acl             0 0
######################################################################

# 重启系统
[hooper@magedu-demo ~] $ uptime
 15:51:59 up 0 min,  1 user,  load average: 0.58, 0.16, 0.05
[hooper@magedu-demo ~] $ df -h
文件系统                              容量  已用  可用 已用% 挂载点
devtmpfs                              1.9G     0  1.9G    0% /dev
tmpfs                                 1.9G     0  1.9G    0% /dev/shm
tmpfs                                 1.9G  8.6M  1.9G    1% /run
tmpfs                                 1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos_magedu--demo-root   50G  3.1G   47G    7% /
/dev/vda1                            1014M  189M  826M   19% /boot
/dev/vdb1                             2.0G  9.1M  1.9G    1% /test
/dev/mapper/centos_magedu--demo-data  200G  7.6G  193G    4% /data
/dev/mapper/centos_magedu--demo-home   41G  468M   41G    2% /home
tmpfs                                 379M     0  379M    0% /run/user/1000

创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录

# 在/dev/vdb磁盘上创建20G分区
[hooper@magedu-demo ~] $ sudo lsblk
NAME                         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda                          252:0    0  300G  0 disk
├─vda1                       252:1    0    1G  0 part /boot
└─vda2                       252:2    0  299G  0 part
  ├─centos_magedu--demo-root 253:0    0   50G  0 lvm  /
  ├─centos_magedu--demo-swap 253:1    0    8G  0 lvm  [SWAP]
  ├─centos_magedu--demo-home 253:2    0   41G  0 lvm  /home
  └─centos_magedu--demo-data 253:3    0  200G  0 lvm  /data
vdb                          252:16   0   30G  0 disk
└─vdb1                       252:17   0    2G  0 part /test
[hooper@magedu-demo ~] $ sudo fdisk /dev/vdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (4196352-62914559,默认为 4196352):
将使用默认值 4196352
Last 扇区, +扇区 or +size{K,M,G} (4196352-62914559,默认为 62914559):+20G
分区 2 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):t
分区号 (1,2,默认 2):
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):p

磁盘 /dev/vdb:32.2 GB, 32212254720 字节,62914560 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x3bddf424

   设备 Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048     4196351     2097152   83  Linux
/dev/vdb2         4196352    46139391    20971520   8e  Linux LVM

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
# 重新读取分区表
[hooper@magedu-demo ~] $ sudo partprobe
[hooper@magedu-demo ~] $ sudo lsblk
NAME                         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda                          252:0    0  300G  0 disk
├─vda1                       252:1    0    1G  0 part /boot
└─vda2                       252:2    0  299G  0 part
  ├─centos_magedu--demo-root 253:0    0   50G  0 lvm  /
  ├─centos_magedu--demo-swap 253:1    0    8G  0 lvm  [SWAP]
  ├─centos_magedu--demo-home 253:2    0   41G  0 lvm  /home
  └─centos_magedu--demo-data 253:3    0  200G  0 lvm  /data
vdb                          252:16   0   30G  0 disk
├─vdb1                       252:17   0    2G  0 part /test
└─vdb2                       252:18   0   20G  0 part

# 创建lvm物理卷
[hooper@magedu-demo ~] $ sudo pvs
  PV         VG                 Fmt  Attr PSize    PFree
  /dev/vda2  centos_magedu-demo lvm2 a--  <299.00g 4.00m
[hooper@magedu-demo ~] $ sudo pvcreate /dev/vdb2
  Physical volume "/dev/vdb2" successfully created.
[hooper@magedu-demo ~] $ sudo pvs
  PV         VG                 Fmt  Attr PSize    PFree
  /dev/vda2  centos_magedu-demo lvm2 a--  <299.00g  4.00m
  /dev/vdb2                     lvm2 ---    20.00g 20.00g
[hooper@magedu-demo ~] $ sudo pvdisplay
  --- Physical volume ---
  PV Name               /dev/vda2
  VG Name               centos_magedu-demo
  PV Size               <299.00 GiB / not usable 3.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              76543
  Free PE               1
  Allocated PE          76542
  PV UUID               Dj2PaB-D2KP-ckbn-8Zru-oUYG-jLdu-gGO8XX

  "/dev/vdb2" is a new physical volume of "20.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/vdb2
  VG Name
  PV Size               20.00 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               U5UqKW-gWv9-42LP-Xe5y-Ibbs-lQoY-qpLBiH

[hooper@magedu-demo ~] $ sudo vgcreate -s 16M testvg /dev/vdb2
  Volume group "testvg" successfully created
# 如果是多个分区的话,后面添加多个分区
[hooper@magedu-demo ~] $ sudo vgdisplay
  --- Volume group ---
  VG Name               centos_magedu-demo
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                4
  Open LV               4
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <299.00 GiB
  PE Size               4.00 MiB
  Total PE              76543
  Alloc PE / Size       76542 / 298.99 GiB
  Free  PE / Size       1 / 4.00 MiB
  VG UUID               u2Gw9g-P5dQ-9eOB-G0Pc-Pg2O-D2vr-tsa6bn

  --- Volume group ---
  VG Name               testvg
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               19.98 GiB
  PE Size               16.00 MiB
  Total PE              1279
  Alloc PE / Size       0 / 0
  Free  PE / Size       1279 / 19.98 GiB
  VG UUID               k2mR1I-CMyY-kQeO-OGe9-tvMr-EnGT-MenXTM

# 创建逻辑卷,大小为5G
[hooper@magedu-demo ~] $ sudo lvcreate -n testlv -L 5G testvg
  Logical volume "testlv" created.
[hooper@magedu-demo ~] $ sudo lvs
  LV     VG                 Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data   centos_magedu-demo -wi-ao---- 200.00g
  home   centos_magedu-demo -wi-ao---- <41.00g
  root   centos_magedu-demo -wi-ao----  50.00g
  swap   centos_magedu-demo -wi-ao----  <8.00g
  testlv testvg             -wi-a-----   5.00g
[hooper@magedu-demo ~] $ sudo lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos_magedu-demo/root
  LV Name                root
  VG Name                centos_magedu-demo
  LV UUID                HSkZ23-owVw-9IJG-CLdE-yBEk-U5ak-i3L3Xm
  LV Write Access        read/write
  LV Creation host, time magedu-demo, 2021-03-09 10:19:31 +0800
  LV Status              available
  # open                 1
  LV Size                50.00 GiB
  Current LE             12800
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/centos_magedu-demo/home
  LV Name                home
  VG Name                centos_magedu-demo
  LV UUID                fefm7T-ufNd-gzRl-dRL2-onQK-X23R-Wogc7I
  LV Write Access        read/write
  LV Creation host, time magedu-demo, 2021-03-09 10:19:31 +0800
  LV Status              available
  # open                 1
  LV Size                <41.00 GiB
  Current LE             10495
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2

  --- Logical volume ---
  LV Path                /dev/centos_magedu-demo/swap
  LV Name                swap
  VG Name                centos_magedu-demo
  LV UUID                LwVlA1-Ex08-JMaH-yP1K-fLSo-dEXS-5jKGA6
  LV Write Access        read/write
  LV Creation host, time magedu-demo, 2021-03-09 10:19:32 +0800
  LV Status              available
  # open                 2
  LV Size                <8.00 GiB
  Current LE             2047
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

  --- Logical volume ---
  LV Path                /dev/centos_magedu-demo/data
  LV Name                data
  VG Name                centos_magedu-demo
  LV UUID                TEvf0T-DO14-0VIJ-Nki2-cXs5-nSUp-qu1BXM
  LV Write Access        read/write
  LV Creation host, time magedu-demo, 2021-03-09 10:19:32 +0800
  LV Status              available
  # open                 1
  LV Size                200.00 GiB
  Current LE             51200
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:3

  --- Logical volume ---
  LV Path                /dev/testvg/testlv
  LV Name                testlv
  VG Name                testvg
  LV UUID                OdEcxT-ay7L-1Vul-N2To-1VIt-1bdT-9HOYdf
  LV Write Access        read/write
  LV Creation host, time magedu-demo, 2021-04-20 16:25:35 +0800
  LV Status              available
  # open                 0
  LV Size                5.00 GiB
  Current LE             320
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:4
[hooper@magedu-demo ~] $ sudo lsblk
NAME                         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda                          252:0    0  300G  0 disk
├─vda1                       252:1    0    1G  0 part /boot
└─vda2                       252:2    0  299G  0 part
  ├─centos_magedu--demo-root 253:0    0   50G  0 lvm  /
  ├─centos_magedu--demo-swap 253:1    0    8G  0 lvm  [SWAP]
  ├─centos_magedu--demo-home 253:2    0   41G  0 lvm  /home
  └─centos_magedu--demo-data 253:3    0  200G  0 lvm  /data
vdb                          252:16   0   30G  0 disk
├─vdb1                       252:17   0    2G  0 part /test
└─vdb2                       252:18   0   20G  0 part
  └─testvg-testlv            253:4    0    5G  0 lvm

# 格式化
[hooper@magedu-demo ~] $ sudo mkfs.xfs /dev/testvg/testlv
meta-data=/dev/testvg/testlv     isize=512    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
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
[hooper@magedu-demo ~] $ sudo mkdir /users
[hooper@magedu-demo ~] $ sudo mount /dev/testvg/testlv /users
[hooper@magedu-demo ~] $ df -h
文件系统                              容量  已用  可用 已用% 挂载点
devtmpfs                              1.9G     0  1.9G    0% /dev
tmpfs                                 1.9G     0  1.9G    0% /dev/shm
tmpfs                                 1.9G  8.6M  1.9G    1% /run
tmpfs                                 1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos_magedu--demo-root   50G  3.1G   47G    7% /
/dev/vda1                            1014M  189M  826M   19% /boot
/dev/vdb1                             2.0G  9.1M  1.9G    1% /test
/dev/mapper/centos_magedu--demo-data  200G  7.6G  193G    4% /data
/dev/mapper/centos_magedu--demo-home   41G  468M   41G    2% /home
tmpfs                                 379M     0  379M    0% /run/user/1000
/dev/mapper/testvg-testlv             5.0G   33M  5.0G    1% /users
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值