磁盘分区管理

在虚拟机B上添加一个新的磁盘 内存是10G

#设备名 主设备号和次设备号 RM为0是可删除1不可删除 可删除的比如USB驱动器 不可删除的就是硬盘 SIZE大小 TYPE块设备的类型 mountpoint 设备挂载文件的位置
[root@b ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   10G  0 disk 
sr0              11:0    1  4.4G  0 rom  /opt

1、MBR分区

  • MBR分区

    • 最多支持四个主分区或者3个主分区和一个扩展分区、扩展分区可包含逻辑分区
    • MBR分区最多支持2TB的分区大小
  • GPT分区:

    • 最多支持128个主分区,最大支持18EB磁盘
属性说明
l查看分区表
m列出指令帮助
p查看现有的分区表
n新建分区
d删除分区
q放弃更改并退出
w保存更改并退出
#查看磁盘分区表的信息
[root@b ~]# fdisk -l /dev/sdb 

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O大小(最小/最佳):512 字节 / 512 字节


[root@b ~]# fdisk /dev/sdb 

#输入n新建分区
命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
   
#p是主分区 e是扩展分区   
Select (default p): p
分区号 (1-4,默认 1):1

起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048

#给主分区1添加2G内存
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB

#查看现有的分区 sdb1
命令(输入 m 获取帮助):p

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x704ffd0a

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux

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

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

#此时会在sdb下多出一个分区是2G的
[root@b ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   10G  0 disk 
└─sdb1            8:17   0    2G  0 part 
sr0              11:0    1  4.4G  0 rom  /opt
[root@b ~]# 

2、MBR格式化分区

  • ext4文件系统
  • NTFS文件系统
  • FAT32文件系统
#格式化为ext4文件系统
[root@b ~]# mkfs.ext4 /dev/sdb1

#格式化为NTFS文件系统
[root@b ~]# mkfs.ntfs /dev/sdb1

#格式化为FAT32文件系统
[root@b ~]# mkfs.fat -F32 /dev/sdb1

#格式化完成后查看sbd1设备相关信息
[root@b ~]# blkid  /dev/sdb1 

/dev/sdb1: UUID="72f99f00-4404-4d15-aecf-07cac867f6a2" TYPE="ext4" 

3、GPT分区

删除之前用MBR的两个主分区 现在用GPT分区进行实验

#sdb用gpt分区
[root@b /]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   10G  0 disk 
sr0              11:0    1  4.4G  0 rom  /opt

#gpt分区
[root@b /]# parted /dev/sdb 
(parted) mkpart  #划分新的分区
分区类型?  primary/主分区/extended/扩展分区? p      #p是主分区 e是扩展分区                   
文件系统类型?  [ext2]? ext4                       #分区的文件系统类型                       
起始点? 0                                                                
结束点? 2G                                       #分配的空间                         
警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel? Ingore                  #选择忽略,给分区表空间                                                               
(parted) unit GB                               #显示利用 GB 作为单位
(parted) print                                 #查看分区表信息                        
Number  Start   End     Size    Type     File system     标志
 1      0.00GB  2.00GB  2.00GB  primary  linux-swap(v1)
 
 
(parted) mkpart                                                           
分区类型?  primary/主分区/extended/扩展分区? p                           
文件系统类型?  [ext2]? ext4                                              
起始点? 2G                                                                                  
结束点? 4G                                   #上一个分区的结束,下一个分区的开始                                  
(parted) print
Number  Start   End     Size    Type     File system     标志
 1      0.00GB  2.00GB  2.00GB  primary  linux-swap(v1)
 2      2.00GB  4.00GB  2.00GB  primary

(parted) quit                        #直接退出即可,默认保存

#查看设备信息 目前sdb已经成功分类了2个2G的主分区
[root@b /]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   10G  0 disk 
├─sdb1            8:17   0  1.9G  0 part 
└─sdb2            8:18   0  1.9G  0 part 
sr0              11:0    1  4.4G  0 rom  /opt

#删除分区 1是Number
(parted) rm 
(parted) 1

4、GPT交换分区

扩展系统内存:当物理内存不足时,交换分区可以扩展系统可用的内存空间。当操作系统发现物理内存不够用时,它会将暂时不活跃的内存页面转移到交换分区中,以便为新的进程或活跃的进程提供更多的内存空间。

#查看交换分区
[root@b /]# swapon -s
文件名                          类型            大小    已用    权限
/dev/dm-1                               partition       2097148 0       -2


#查看内存和交换空间的大小
[root@b /]# free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        486M        899M         12M        434M        1.1G
Swap:          2.0G          0B        2.0G
[root@b /]# 

#格式化交换文件系统    
[root@b /]# mkswap /dev/sdb1
[root@b /]# mkswap /dev/sdb2

#查看设备的文件系统
[root@b /]# blkid /dev/sdb1
[root@b /]# blkid /dev/sdb2

#启用交换分区
[root@b ~]# swapon /dev/sdc1
[root@b ~]# swapon /dev/sdc2

#关闭交换分区
[root@b ~]# swapoff /dev/sdc1
[root@b ~]# swapon /dev/sdc1

#查看交换分区
[root@b /]# swapon -s
文件名                          类型            大小    已用    权限
/dev/dm-1                               partition       2097148 0       -2
/dev/sdb1                               partition       1953120 0       -3
/dev/sdb2                               partition       1952764 0       -4

#开机自动启用交换分区
[root@b ~]# vim /etc/fstab
/dev/sdb1 swap swap defaults 0 0
/dev/sdb2 swap swap defaults 0 0

逻辑卷

作用:可以整合分散磁盘空间,逻辑卷的空间可以扩大

制作过程:将众多的物理卷(pv)组建成卷组(vg)再从卷组中划分逻辑卷(lv)

物理卷:多个分区或者一个分区要组成的卷组就是物理卷 需要组成卷组的话 物理卷不可以有使用痕迹(好几个分区要组成卷组 那几个分区就是物理卷了)

实验环境:虚拟机B添加80个G的硬盘 用fdisk划分 3 个 10G 主分区,一个扩展分区,2 个 10G 逻辑分区

功能物理卷卷组逻辑卷
扫描pvscanvgscanlvscan
创建pvcreatevgcreatelvcreate
显示pvdisplayvgdisplaylvdisplay
删除pvremovevgremovelvremove
扩展/vgextendlvextend

1、创建卷组

#创建卷组
#命令格式:vgcreate 卷组名 设备路径
[root@b ~]# vgcreate systemvg /dev/sdb1 /dev/sdb2

[root@b ~]# pvs   #查看物理卷信息
[root@b ~]# vgs   #查看卷组信息
[root@b ~]# lvs   #查看逻辑卷信息

2、创建逻辑卷

#创建逻辑卷
#格式:lvcreate -L 逻辑卷的大小 -n 逻辑卷的名字 卷组名
[root@b ~]# lvcreate -L 16G -n vo systemvg 

[root@b ~]# lvs   #查看逻辑卷信息

#可以直接查看,是一个快捷方式
[root@b ~]# ls -l /dev/systemvg/vo
lrwxrwxrwx. 1 root root 7 11月  2 21:24 /dev/systemvg/vo -> ../dm-2

3、格式化逻辑卷

[root@b ~]# mkfs.ext4 /dev/systemvg/vo

#逻辑卷的文件类型
[root@b /]# blkid /dev/systemvg/vo

#设置开机自启
[root@b ~]# vim /etc/fstab 
/dev/systemvg/vo /mylv ext4 defaults 0 0
[root@b ~]# mkdir /mylv

#验证是否挂载成功
[root@b ~]# mount -a

#查看所有文件系统所使用的容量
[root@b ~]# df -h

4、逻辑卷扩展

[root@localhost ~]# lvextend -L 18G /dev/systemvg/vo #扩展到 18 个 G
[root@localhost ~]# lvs
  root centos   -wi-ao---- <17.00g                                                    
  swap centos   -wi-ao----   2.00g                                                    
  vo   systemvg -wi-ao----  18.00g  

[root@b /]# df -h /mylv/
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/systemvg-vo   16G   45M   15G    1% /mylv

#扩展完成之后会发现文件系统还是之前的16G 因为逻辑卷是逻辑卷的大小 文件系统是文件系统的大小 含义不同所以需要刷新下文件系统
[root@b /]# resize2fs /dev/systemvg/vo 
[root@b /]# df -h /mylv/
[root@localhost ~]# lvs
#刷新完成再去观察 发现一切都已恢复原来的样子

5、卷组扩展

如果卷组没有足够的剩余空间 先扩展卷组需要用到剩余的物理卷 在扩展逻辑卷在刷新文件系统就OK了

#之前的卷组是sdb1和sdb2  3、5、6是没有用上的

#扩展卷组的空间
[root@b ~]# vgextend systemvg /dev/sdb3 /dev/sdb5 /dev/sdb6
[root@b ~]# vgs

#扩展逻辑卷的空间
[root@localhost ~]# lvextend -L 25G /dev/systemvg/vo
[root@localhost ~]# lvs

#再刷新一下文件系统
[root@localhost ~]# resize2fs /dev/systemvg/vo
[root@localhost ~]# df -h

#resize2fs :刷新 ext4 文件系统
#xfs_growfs :刷新 xfs 文件系统

6、卸载逻辑卷

#先取消挂载
[root@b /]# umount /mylv 
#删除开机自启的挂载配置
[root@b /]# vim /etc/fstab 
#删除逻辑卷
[root@b /]# lvremove /dev/systemvg/vo 
#删除卷组
[root@b /]# vgremove systemvg 
#删除磁盘分区
[root@b /]# fdisk /dev/sdb 
d

#查看所有的设备 实验结束
[root@b /]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   80G  0 disk 
sr0              11:0    1  4.4G  0 rom  /opt

总结

  • 逻辑卷制作流程:需要将物理磁盘分区转换为物理卷 在从物理卷升级为卷组 在从卷组扩展成逻辑卷
  • 逻辑卷优点:逻辑卷可以动态调整大小,不需要重新分区或格式化磁盘,可以更灵活地分配存储空间。
  • 逻辑卷扩展思路:如果逻辑卷没有扩展空间将会去找卷组扩展空间 如果卷组没有空间则会去找物理卷扩展 扩展完成后还需要刷新一下文件系统

Yum源配置

1、创建挂载点和目录

[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# df /mnt/cdrom
文件系统                   1K-块    已用     可用 已用% 挂载点
/dev/mapper/centos-root 17811456 4224704 13586752   24% /

2、挂载光盘

[root@localhost ~]# mount /dev/cdrom /opt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# 

3、更改配置文件

#进入/etc/yum.repos.d/
cd /etc/yum.repos.d/

#删除yum.repos.d/下的所有文件
rm -rf /etc/yum.repos.d/*

#新建一个配置文件
vim yum.repo

#编辑文件
[yum]
name=yum  #仓库名称
baseurl=file:///opt #挂载路径
gpgcheck=0        #用来检查GPG-KEY,0为不检查,1为检查
enabled=1        #是否用该yum源,0为禁用,1为使用

4、设置开机自动挂载

挂载文件的配置在 /etc/fstab

#iso9660固定的光驱文件系统
[root@b yum.repos.d]# blkid /dev/cdrom
/dev/cdrom: UUID="2020-11-04-11-36-43-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 

#编辑配置文件
[root@b yum.repos.d]# vim /etc/fstab

#在下面添加如下就会设置为开机自动挂载
/dev/cdrom /opt iso9660 defaults 0 0 

5、清除yum缓存

[root@localhost yum.repos.d]# yum clean all 
[root@localhost yum.repos.d]# yum list
#出现已安装的软件包时,说明已经成功了

SSH远程管理

  • 实验环境:VMware隔离模式、真机防火墙(可开可关)关闭的话三个ip都可以ping通、服务端安装好 ssh 服务, openssh-server

    • Vmnet1ip:192.168.4.251
    • 虚拟机A ip:192.168.4.7
    • 虚拟机B ip:192.168.4.207
  • ssh配置文件:/etc/ssh/sshd_config

1、密码登录

#虚拟机A连接虚拟机B ssh root@ip地址
#提示需要密码
[root@a ~]# ssh root@192.168.4.207

[root@b ~]# 

2、无密码登录

#虚拟机B生成公钥和私钥
[root@b ~]# ssh-keygen

#生成的秘钥都在/root/.ssh/下存放
[root@b ~]# ls /root/.ssh/

#将本机的公钥复制给虚拟机A
[root@b ~]# ssh-copy-id  root@192.168.4.7

#此时就可以免密码登录了
[root@b ~]# ssh root@192.168.4.7

#拷贝虚拟机A /etc/shells 拷贝到本机下的/opt/下
[root@b ~]# scp root@192.168.4.7:/etc/shells  /opt/

SSH端口

SSH默认端口是22

1、修改SSH端口

#虚拟机B将ssh的端口修改为8022
[root@b ~]# vim /etc/ssh/sshd_config 

#重启sshd服务-会报错
[root@b ~]# systemctl restart sshd


#修改selinux防火墙
#停止防火墙服务
[root@b ~]# systemctl stop firewalld.service 

#关闭开机自启
[root@b ~]# systemctl disable firewalld.service 

#关闭Selinux
[root@b ~]# setenforce 0

#Selinux配置为permissive
#SELINUX=permissive
[root@b ~]# vim /etc/selinux/config 

#重新启动ssh远程服务
[root@b ~]# systemctl restart sshd

ss 与 netstat

netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。

-a 显示所有端口的信息
-n 以数字格式显示端口号
-t 显示 TCP 连接的端口
-u 显示 UDP 连接的端口
-l 显示服务正在监听的端口信息
-p 显示监听端口的服务名称是什么(也就是程序名称)

#查看tcp和udp的所有连接信息
[root@svr7 ~]# netstat -anptu 
[root@svr7 ~]# ss -anptu

#查看端口22也就是ssh活动的连接信息
[root@svr7 ~]# netstat -anptu |grep :22
[root@svr7 ~]# ss -anptu |grep :22

追踪路由traceroute

可以知道从本机到达目标所经过的路由器有哪些

[root@a /]# traceroute blogdx.com

防火墙

linux中的防火墙的作用就是隔离,进行过滤所有入站请求

  • public:仅允许访问本机的 sshd、ping、dhcp 服务
  • trusted:允许任何访问
  • block:阻塞任何来访请求(明确拒绝,有回应客户端)
  • drop:丢弃任何来访的数据包(直接丢弃,没有回应客户端),节省服务器资源
#虚拟机A 查看防火墙的默认区域
[root@a /]# systemctl restart firewalld.service 
[root@a /]# firewall-cmd --get-default-zone 
public
#虚拟机B
[root@b ~]# ping 192.168.4.7 #可以通信
[root@b ~]# curl 192.168.4.7 #拒绝访问
[root@b ~]# curl ftp://192.168.4.7 #拒绝访问
#虚拟机A 修改默认区域 允许任何访问
[root@a /]# firewall-cmd --set-default-zone=trusted 
#虚拟机B 测试
[root@b ~]# curl ftp://192.168.4.7 #可以访问
[root@b ~]# ping 192.168.4.7 #可以通信
#虚拟机A 修改默认区域为阻塞任何来访请求
[root@a /]# firewall-cmd --set-default-zone=block 

#查看默认区域
[root@a /]# firewall-cmd --get-default-zone 
block
#虚拟机B 测试
[root@b ~]# ping 192.168.4.7 #不可以通信,没有回应

1、防火墙的策略

属性端口
http:超文本传输协议80
https:安全的超文本传输协议443
ftp:文件传输协议21
tftp:简单文件传输协议69
DNS:域名解析协议53
telnet:远程管理协议23
smtp:邮件协议(发邮件)25
pop3:邮件协议(收邮件)110
snmp:简单的网络管理协议161
#虚拟机A 查看防火墙区域
[root@a ~]# firewall-cmd --get-default-zone
public

#查看区域策略
[root@a /]# firewall-cmd --zone=public  --list-all 
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  # 下面是放行的的协议
  services: dhcpv6-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
#虚拟机B 测试访问http 访问失败
[root@b ~]# curl 192.168.4.7 

虚拟机A设置放行http和ftp协议

#虚拟机A
[root@a /]# firewall-cmd --zone=public --add-service=http --add-service=ftp
success

#虚拟机B 测试访问
#此时就会访问成功
[root@b ~]# curl 192.168.4.7 

如果重启防火墙服务器则会导致之前配置的全部变成默认的状态 配置永久放行如下

#虚拟机A 添加放行规则
[root@a ~]# firewall-cmd --permanent --zone=public --add-service=http
[root@a ~]# firewall-cmd --permanent --zone=public --add-service=ftp

#这个是重新加载防火墙
[root@a ~]# firewall-cmd --reload 

[root@a ~]# firewall-cmd --zone=public --list-all

#永久删除放行规则
[root@a /]# firewall-cmd --permanent --zone=public --remove-service=http --remove-service=ftp 
success

[root@a /]# firewall-cmd --reload 
success

#此时重启防火墙服务就会消失了
[root@a /]# systemctl restart firewall.service

2、拒绝指定ip访问指定服务

假设有一个虚拟机B重复请求访问虚拟机A好几次 那就有必要拒绝他的请求 但是他的ip还要正常访问 可使用如下

#虚拟机A添加规则
[root@a ~]# firewall-cmd --zone=block --add-source=192.168.4.207


#删除规则
[root@a ~]# firewall-cmd --zone=block --remove-source=192.168.4.207

NTP 时间同步

NTP 时间同步就是通过网络协议实现计算机系统时间与标准时间的同步,确保计算机之间的时间一致性,以满足各种应用程序和系统对于时间准确性的需求。

实验环境 虚拟机A和虚拟机B都需要安装chrony

[root@a ~]# yum -y install chrony

#查看配置文件目录
[root@a ~]# rpm -qc chrony

#编辑配置文件
#本次实验只需要同步虚拟机B就可以 直接把192.168.4.201添加进去就可以了
[root@a ~]# vim /etc/chrony.conf
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
allow 192.168.4.201
allow 0.0.0.0/0 #允许所有网段访问
local stratum 10 #设置 NTP 服务器的层数为 10 层

[root@a ~]# systemctl restart chronyd
[root@a ~]# systemctl enable chronyd

虚拟机B也是需要安装chrony

#在注释的下面添加指定的地址也就是虚拟机A
[root@b ~]# vim /etc/chrony.conf
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 192.168.4.7 iburst #指定时间同步地址 4.7

#重启服务
[root@b ~]# systemctl restart chronyd
[root@b ~]# systemctl enable chronyd

#出现*为成功
[root@b ~]# chronyc sources -v 
210 Number of sources = 1

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^? 192.168.4.7                   0   7     0     -     +0ns[   +0ns] +/-    0ns

注:如果失败,请关闭防火墙,a 和 b 都关闭
最后修改:2023 年 11 月 03 日
如果觉得我的文章对你有用,请随意赞赏