windows 磁盘健康检查

chkdsk 命令介绍

chkdsk 一直是微软自带的磁盘检测工具,对磁盘的健康状态没有做过多的说明。用于检查硬盘和卷上的文件系统完整性并修复逻辑错误和坏扇区. 它遍历所有数据列表,确保磁盘上的内容都是正确的。

CHKDSK实用程序会标记硬盘上的坏扇区,以便Windows知道不要从这些坏扇区存储或读取数据。Windows停止访问标记的坏扇区,会导致存储在这些坏扇区中的数据永久丢失。

当你运行CHKDSK时,它会执行操作来修复逻辑文件系统,尽管这可能会导致数据丢失。CHKDSK过程有五个阶段,其中三个是强制性的,两个是可选的。当你在CMD中运行磁盘修复命令CHKDSK时,你可以看到该实用程序的各个阶段。

⚙️阶段1. 检查基本文件系统结构

⚙️阶段2. 检查文件名链接

⚙️阶段3. 检查安全描述符

⚙️阶段4. 在用户文件数据种查找损坏的集群(可选)

⚙️阶段5. 查找损坏的空间集群(可选)

磁盘健康状态和smart

Modern hard drives have a feature known as S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology,) which allows you to quickly see their health status. Though this feature should automatically notify you if there are any issues with your drive, you can check it manually if you think something’s not right.

现代硬盘有一项名为S.M.A.R.T.(自我监控、分析和报告技术)的功能,可让您快速查看其健康状态。虽然此功能会自动通知您驱动器是否有任何问题,但如果您认为有问题,可以手动检查。

windows 自带的磁盘健康检查命令

wmic diskdrive get status

Get-WmiObject -namespace root\wmi –class MSStorageDriver_FailurePredictStatus

Network BGP Preferred Value实验

Table of Contents

实验拓扑

1、知识点:当一台BGP 存在多条去往同一目标网络的BGP 路由时,BGP会对这些BGP路由属性进行比较,以确定去往该目标网络的最佳BGP路由,然后将去往同一目标网络其他协议路由进行比较;从而确定是否将最优BGP 路由放进IP路由表中。BGP路由属性比较时首先比较的就是路由信息首选值(Preferred Value)简称PrefVal。取值的优先级为0~65535。取值越大,优先级越高。默认值为0。PrefVal属性不会传递给BGP 邻居,仅作为本地路由器用来选择最佳BGP路径之用。

2、在AS100内使用RIP V2实现互连、每个路由器使用环回接口作为Router-ID 且作为BGP连接的源接口。

3、掌握Preferred Value(首选值)属性的方法

4、通过修改Preferred Value 属性来实现流量分担

5、在R3上修改去往R4的 10.0.44.44/32 10.0.55.55/32的路由使得去往44的路由通过R1,去往55的路由通过R2.

6、如果下一跳不同,但路由信息首选值PrefVal、本地优先级LocPrf、路由方式、AS_PATH属性、Origin属性、MED属性、BGP对等体类型都是相同的,BGP 会选择Router-ID较小的路由器作为最佳路由。

实验配置

R1 配置

dis current-configuration configuration bgp
[V200R003C00]
#
bgp 100
router-id 10.0.1.1
peer 10.0.2.2 as-number 100
peer 10.0.2.2 connect-interface LoopBack0
peer 10.0.3.3 as-number 100
peer 10.0.3.3 connect-interface LoopBack0
peer 10.0.4.4 as-number 200
peer 10.0.4.4 ebgp-max-hop 255 //如果不指定最大跳数则为1、缺省情况下,EBGP连接允许的最大跳数为1,即只能在物理直连链路上建立EBGP连接。
peer 10.0.4.4 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
peer 10.0.2.2 enable
peer 10.0.2.2 next-hop-local
peer 10.0.3.3 enable
peer 10.0.3.3 next-hop-local
peer 10.0.4.4 enable
#
return

静态路由 去往10.0.4.4 环回接口的路由

ip route-static 10.0.4.4 255.255.255.255 10.0.14.4

dis current-configuration configuration rip
[V200R003C00]
#
rip 1
version 2
network 10.0.0.0
#
return

R3 配置

<R3>dis current-configuration configuration rip
[V200R003C00]
#
rip 1
version 2
network 10.0.0.0
#
return
dis current-configuration configuration bgp
[V200R003C00]
#
bgp 100
peer 10.0.1.1 as-number 100
peer 10.0.1.1 connect-interface LoopBack0
peer 10.0.2.2 as-number 100
peer 10.0.2.2 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
network 10.0.33.33 255.255.255.255
peer 10.0.1.1 enable
peer 10.0.1.1 next-hop-local
peer 10.0.2.2 enable
peer 10.0.2.2 route-policy 1 import //在R2上使用了路由策略 在BGP 视图下
peer 10.0.2.2 next-hop-local
#
return

dis current-configuration | include ip ip-prefix

ip ip-prefix 1 index 10 permit 10.0.55.55 32 //新建IPV4 地址前缀列表名为1 序号为10 匹配模式为允许。

路由策略

dis current-configuration configuration route-policy
[V200R003C00]
#
route-policy 1 permit node 10
if-match ip-prefix 1
apply preferred-value 100 //修改首选值
#
route-policy 1 permit node 20 //允许其他路由不做修改而被接收
#
return

linux parted 分区

linux分区命令parted的用法

parted的适用场景

  • 创建操作大于2T的分区
    一般情况下,我们都是选择使用fdisk工具来进行分区,但是目前在实际生产环境中使用的磁盘空间越来越大,呈TiB级别增长;而常用的fdisk这个工具对分区是有大小限制的,它只能划分小于2T的磁盘,所以在划大于2T磁盘分区的时候fdisk就无法满足要求了;这个时候有2个方法,其一是通过卷管理来实现,其二就是通过parted工具来实现对GPT磁盘进行分区操作;这里我们采用parted的方法来实现管理。

parted的2种使用方式

  • 交互式
    手动按序交互式的创建;
  • 非交互式
    可将命令行写在脚本中,运行脚本实现一键创建;适用于远程批量管理多台主机的场景。
  • 两种方式比较
    两种方法的使用和原理其实是一样的;要想实现非交互式创建,无非是在每一个具体的交互式命令前加上parted DEVICES_NAME即可。

parted实现分区管理实践

实验环境

操作系统

CentOS 7.5

磁盘信息

  • 待管理磁盘
    /dev/sdb
  • 磁盘总大小
    18T
  • 分区需求
    将整个/dev/sdb划分到同一个分区里,并挂载到**/gfsdata01目录下。

交互式方式实现分区步骤

选择操作磁盘

parted命令后跟上欲操作磁盘的名字即可选择此设备进行操作。

[root@kvm ~]# parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.

新建磁盘标签类型为GPT

因为parted命令只能针对gpt格式的磁盘进行操作,所以这里必须将新建的磁盘标签格式设为gpt。

(parted) mklabel gpt

分区

命令格式

mkpart PART-TYPE [FS-TYPE] START END
  • PART-TYPE(分区类型)
    • primary
      主分区
    • logical
      逻辑分区
    • extended
      扩展分区
  • FS-TYPE(文件系统类型)
    • ext4
    • ext3
    • ext2
    • xfs
    • 其他……
  • START
    设定磁盘分区起始点;可以为0,numberMiB/GiB/TiB;
    • 0
      设定当前分区的起始点为磁盘的第一个扇区;
    • 1G
      设定当前分区的起始点为磁盘的1G处开始;
  • END
    设定磁盘分区结束点;
    • -1
      设定当前分区的结束点为磁盘的最后一个扇区;
    • 10G
      设定当前分区的结束点为磁盘的10G处;

将/dev/sdb整个空间分给同一个分区

(parted) mkpart primary 0 -1                                              
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? I
(parted) p                                                                
Model: AVAGO AVAGO (scsi)
Disk /dev/sdb: 18.0TB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      17.4kB  18.0TB  18.0TB               primary
(parted) q                                                                
Information: You may need to update /etc/fstab.

格式化分区

因为整个/dev/sdb只分了一个区,则这个分区名默认会分配为/dev/sdb1;使用mkfs命令将/dev/sdb1分区格式化为ext4

[root@kvm ~]# mkfs -t ext4 /dev/sdb1                 
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb1 alignment is offset by 244736 bytes.
This may result in very poor performance, (re)-partitioning suggested.
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=64 blocks, Stripe width=64 blocks
274659328 inodes, 4394530311 blocks
219726515 blocks (5.00%) reserved for the super user
First data block=0
134111 block groups
32768 blocks per group, 32768 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
        102400000, 214990848, 512000000, 550731776, 644972544, 1934917632, 
        2560000000, 3855122432

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

设定分区label(非必要)

[root@kvm ~]# e2label /dev/sdb1 /gfsdata01

创建挂载目录

[root@kvm ~]# mkdir /gfsdata01

临时挂载分区

[root@kvm ~]# mount /dev/sdb1 /gfsdata01
[root@kvm ~]# df -h
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/root_vg-lv_root   89G  2.6G   82G   4% /
devtmpfs                     126G     0  126G   0% /dev
tmpfs                        126G     0  126G   0% /dev/shm
tmpfs                        126G  2.0M  126G   1% /run
tmpfs                        126G     0  126G   0% /sys/fs/cgroup
/dev/sda1                    976M  216M  694M  24% /boot
/dev/sda7                     99G   61M   94G   1% /home
/dev/sda8                     62G   53M   59G   1% /tmp
/dev/sda6                     99G   61M   94G   1% /app
tmpfs                         26G     0   26G   0% /run/user/1014
tmpfs                         26G     0   26G   0% /run/user/0
/dev/sdb1                     17T   20K   16T   1% /gfsdata01

开机自动挂载(永久挂载)

即修改/etc/fstab文件。

echo '/dev/sdb1 /gfsdata01    ext4    defaults    0 0' >>/etc/fstab

非交互式方式实现脚本

适用于需要在多台主机上进行同样的分区操作,可以通过ansible工具调用脚本实现批量分区配置挂载等操作。

[root@kvm ~]# cat ./auto_partition.sh 
#!/bin/bash
# 新建/dev/sdb的磁盘标签类型为GPT
parted /dev/sdb mklabel gpt 
# 将/dev/sdb整个空间分给同一个分区
parted /dev/sdb mkpart primary 0 100%
# 忽略警告
ignore
# 格式化分区
mkfs -t ext4 /dev/sdb1
# 设定分区label(非必要)
e2label /dev/sdb1 /gfsdata01
# 创建挂载目录
mkdir /gfsdata01
# 临时挂载
mount /dev/sdb1 /gfsdata01
# 开机自动挂载(永久挂载)
echo '/dev/sdb1 /gfsdata01       ext4    defaults        0 0'>>/etc/fstab
[root@kvm ~]# 

parted的其他常用子命令

删除分区(rm子命令)

rm NUMBERNUMBER即为parted子命令p回显的Number对应的数字;
此命令慎用!!!如果要删除的分区内已有数据,那么此命令会删除其中的所有数据,并且是不可逆的。

(parted) p                                                                
Model: AVAGO AVAGO (scsi)
Disk /dev/sdb: 18.0TB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      17.4kB  4096GB  4096GB               primary

(parted) rm 1                                                             
(parted) p                                                                
Model: AVAGO AVAGO (scsi)
Disk /dev/sdb: 18.0TB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start  End  Size  File system  Name  Flags

(parted)

使用parted创建大分区时 mkpart Warning: The resulting partition is not properly aligned for best performance.

上网搜索的结论是分区起始的扇区成是把optimal_io_size的值与alignment_offset的值相加,之后除以physical_block_size的值。

[root@db_taibao oracle]# cat /sys/block/sdb/queue/optimal_io_size 
0
[root@db_taibao oracle]# cat /sys/block/sdb/queue/minimum_io_size 
4096
[root@db_taibao oracle]# cat /sys/block/sdb/alignment_offset 
0
[root@db_taibao oracle]# cat /sys/block/sdb/queue/physical_block_size 
4096

采用下面的值创建成功

(parted) mkpart primary 4096 100%                                            
(parted)

linux 小版本centos升级

CentOS7.3升级到CentOS7.9

1)查看当前centos系统版本和内核版本

[root@centos7-82 ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)

2)备份原来的CentOS-Base.repo

[root@centos7-82 ~]# cd /etc/yum.repos.d/

[root@centos7-82 yum.repos.d]# cp CentOS-Base.repo CentOS-Base.repo_bak

3)修改yum源。

要保证更换的yum源地址可以正常访问。如下使用阿里云的yum源http://mirrors.aliyun.com/centos/7.9.2009,要保证手动打开这个地址是有效地址,且镜像yum源内容完整存在。

[base]

name=CentOS-$releasever

enabled=1

failovermethod=priority

baseurl=http://mirrors.aliyun.com/centos/7.9.2009/os/$basearch/

gpgcheck=1

gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7

[updates]

name=CentOS-$releasever

enabled=1

failovermethod=priority

baseurl=http://mirrors.aliyun.com/centos/7.9.2009/updates/$basearch/

gpgcheck=1

gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[extras]

name=CentOS-$releasever

enabled=1

failovermethod=priority

baseurl=http://mirrors.aliyun.com/centos/7.9.2009/extras/$basearch/

gpgcheck=1

gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

4)执行更新yum

确保下面更新操作没有报错。

[root@centos7-82  yum.repos.d]# yum update -y

5)重启系统

[root@centos7-82  yum.repos.d]# init 6

重启后查看系统版本

[root@centos7-82 yum.repos.d]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)