编辑
2024-04-27
LinuxNotes
00

目录

磁盘管理部分:
1、在vmware上给虚拟机新增一块磁盘设备
2、在系统中查看新加的这块盘的名称,并对它进行分区,分两个区
3、对两个分区进行格式化,第一个分区格式化成ext4的文件系统,第二个分区格式化成xfs的文件系统
4、在系统中新建两个空目录,/data 和 /data1,然后将这两个分区挂载到这两个空空目录下,并需要保证下一次系统重启的时候,这两个分区还能自动挂载到这两个目录上
5、回答一下为什么我们挂载新的磁盘分区的时候,需要挂载点是空的目录,如果有数据会发生什么?如果你需要挂载的目录/data 本身确定有数据,但是你还想将新的磁盘挂载到/data 目录下,该如何操作?
6、在/data 目录下创建一个文件 file.txt,然后在 /data1 目录创建一个 /data/file.txt 的硬链接文件 file1.txt。和软连接文件file1-s.txt。看看哪个文件会创建失败,为什么?
7、总结为什么目录空间扩容的时候,需要先扩容磁盘,再扩容分区,最后扩容文件系统?
8、Raid10和Raid01 有什么差别,为什么我们多选择Raid10而不是Raid01?
9、将各位将当前的虚拟机的根分区做扩容
网络部分:
1、已知一个CIDR地址块:128.14.35.7/20,请给出来这个cidr的网络地址,最小有效地址,子网掩码,最大地址,能分配几个 /22 的CIDR地址块,分别是那几个子网,每个网络地址是啥。要求写出你的计算过程。
2、已知172.16.34.78/17这个地址,求它的网络地址,最小有效地址,子网掩码,最大地址。这个/17的CIDR,我想再分配出来一个/18的CIDR,和两个/19的CIDR,该怎么分配?分别给出每个CIDR的网络地址?
3、还是2题中的这个CIDR,如果我想分配出3个 /18的CIDR地址段,能不能分的出来,为什么?
4、画出TCP/IP的5层分层图

磁盘管理部分:

1、在vmware上给虚拟机新增一块磁盘设备

  1. 打开vmware虚拟机, 选择镜像, 选择编辑虚拟机设置

image-20240426001058990.png

  1. 选择添加硬盘,默认下一步即可,(磁盘分配大小处我选择添加两块10GB大小磁盘)

image-20240426001140621.png

  1. 记得在勾选启动时CD/DVD选项勾选启动时连接

image-20240426001118630.png

2、在系统中查看新加的这块盘的名称,并对它进行分区,分两个区

  1. 启动镜像
  2. 使用lsblk命令查看新添加的磁盘
bash
[root@centosmini01 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 10G 0 disk ├─sda1 8:1 0 762M 0 part /boot └─sda2 8:2 0 9.3G 0 part ├─centos-root 253:0 0 7.4G 0 lvm / └─centos-swap 253:1 0 1.9G 0 lvm [SWAP] sdb 8:16 0 10G 0 disk sdc 8:32 0 10G 0 disk sr0 11:0 1 9.5G 0 rom
  • 新添加的磁盘为sdb和sdc各为10GB
  1. 使用fdisk命令对sdb分区
bash
[root@centosmini01 ~]# fdisk /dev/sdb Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table Building a new DOS disklabel with disk identifier 0xc2ab241a. # 使用n选项进行分区 Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended # 选择主分区 Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-20971519, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): 10485759 Partition 1 of type Linux and of size 5 GiB is set # 显示分区成功,大小为 5 GiB Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (2-4, default 2): 2 First sector (10485760-20971519, default 10485760): Using default value 10485760 Last sector, +sectors or +size{K,M,G} (10485760-20971519, default 20971519): Using default value 20971519 Partition 2 of type Linux and of size 5 GiB is set # w 选项为写入所有更改并退出 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
  1. 使用fdisk -l查看分区情况
bash
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 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 Disk label type: dos Disk identifier: 0xc2ab241a Device Boot Start End Blocks Id System /dev/sdb1 2048 10485759 5241856 83 Linux /dev/sdb2 10485760 20971519 5242880 83 Linux
  • 已经将sdb分为sdb1和sdb2

3、对两个分区进行格式化,第一个分区格式化成ext4的文件系统,第二个分区格式化成xfs的文件系统

  • 使用mkfs.ext4格式化sdb1分区
bash
[root@centosmini01 ~]# mkfs.ext4 /dev/sdb1 mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 327680 inodes, 1310464 blocks 65523 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=1342177280 40 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
  • 使用mkfs.xfs格式化sdb2分区
bash
[root@centosmini01 ~]# mkfs.ext4 /dev/sdb1 mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 327680 inodes, 1310464 blocks 65523 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=1342177280 40 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done [root@centosmini01 ~]# mkfs.xfs /dev/sdb2 meta-data=/dev/sdb2 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

4、在系统中新建两个空目录,/data 和 /data1,然后将这两个分区挂载到这两个空空目录下,并需要保证下一次系统重启的时候,这两个分区还能自动挂载到这两个目录上

  1. 在根目录下创建/data 和 /data1 目录
bash
[root@centosmini01 ~]# mkdir /data /data1 [root@centosmini01 ~]# ls / bin boot data data1 dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
  1. 使用mount命令进行挂载(临时挂载)
bash
[root@centosmini01 ~]# mount /dev/sdb1 /data [root@centosmini01 ~]# mount /dev/sdb2 /data1 [root@centosmini01 ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 475M 0 475M 0% /dev tmpfs 487M 0 487M 0% /dev/shm tmpfs 487M 7.7M 479M 2% /run tmpfs 487M 0 487M 0% /sys/fs/cgroup /dev/mapper/centos-root 7.4G 1.6G 5.9G 21% / /dev/sda1 759M 163M 597M 22% /boot tmpfs 98M 0 98M 0% /run/user/0 /dev/sdb1 4.8G 20M 4.6G 1% /data /dev/sdb2 5.0G 33M 5.0G 1% /data1
  1. 使用blkid命令查看sdb1和sdb2的UUID(通用唯一标识符)
bash
[root@centosmini01 ~]# blkid /dev/sdb1 /dev/sdb1: UUID="fea3f537-e490-437d-8bea-f1665ac0ad59" TYPE="ext4" [root@centosmini01 ~]# blkid /dev/sdb2 /dev/sdb2: UUID="eb345697-6169-4da3-b2d3-421bdd1e224f" TYPE="xfs"
  1. 编辑/etc/fstable 文件实现重启后自动挂载
/etc/fstable
[root@centosmini01 ~]# vim /etc/fstab # # /etc/fstab # Created by anaconda on Wed Apr 24 23:24:31 2024 # # 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 # /dev/mapper/centos-root / xfs defaults 0 0 UUID=863ff5b7-fc4f-4523-b2a5-f0f37af3b35d /boot xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 UUID=fea3f537-e490-437d-8bea-f1665ac0ad59 /data ext4 defaults 0 0 UUID=eb345697-6169-4da3-b2d3-421bdd1e224f /data1 xfs defaults 0 0
  • 使用mount -a 排除错误
bash
[root@centosmini01 ~]# mount -a

5、回答一下为什么我们挂载新的磁盘分区的时候,需要挂载点是空的目录,如果有数据会发生什么?如果你需要挂载的目录/data 本身确定有数据,但是你还想将新的磁盘挂载到/data 目录下,该如何操作?

  1. 当你将一个文件系统挂载到一个目录时,该目录作为挂载点,会变成那个文件系统的根目录。如果挂载点目录在挂载之前已经包含了一些文件或子目录,那么这些文件或子目录在挂载后将会被隐藏,你将无法访问到它们。这是因为挂载操作实际上是将新的文件系统覆盖到了挂载点目录,使得原来的内容无法被访问。
  2. 如果你需要将新的磁盘挂载到 /data 目录,但 /data 目录已经包含了一些数据,你需要先将这些数据移动到其他地方, 做好数据的备份.

6、在/data 目录下创建一个文件 file.txt,然后在 /data1 目录创建一个 /data/file.txt 的硬链接文件 file1.txt。和软连接文件file1-s.txt。看看哪个文件会创建失败,为什么?

  1. 创建文件
bash
[root@centosmini01 ~]# cd /data [root@centosmini01 data]# touch file.txt [root@centosmini01 data]# ls file.txt lost+found
  1. 创建链接文件
bash
[root@centosmini01 data]# ln -s /data/file.txt /data1/file1-s.txt [root@centosmini01 data]# ln /data/file.txt /data1/file1.txt ln: failed to create hard link ‘/data1/file1.txt’ => ‘/data/file.txt’: Invalid cross-device link [root@centosmini01 data]# cd /data1 [root@centosmini01 data1]# ll total 0 lrwxrwxrwx. 1 root root 14 Apr 26 00:58 file1-s.txt -> /data/file.txt
  • 发现此时硬链接文件创建失败
  • Invalid cross-device link 表明 /data 和 /data1 是在不同的文件系统或分区中,因此无法创建硬链接。
  1. 硬链接创建失败原因
  • 硬链接无法跨文件系统或者分区创建

  • 硬链接:硬链接的一个限制是不能跨越不同的文件系统或分区。这是因为硬链接实际上是文件系统中的一个 inode 的别名(或额外的名字)。inode 是文件系统中的一个数据结构,它存储了文件的元数据(如文件大小、创建时间、所有者等)以及文件数据的位置。因此,硬链接只能在同一个文件系统或分区中创建。如果 /data 和 /data1 在不同的分区或文件系统中,你将无法创建硬链接。

  • 符号链接:符号链接,或称为软链接,是一个特殊的文件,它包含了另一个文件的路径。因为符号链接只存储了目标文件的路径,而不是像硬链接那样与目标文件的 inode 直接关联,所以符号链接可以跨越文件系统和分区。即使 /data 和 /data1 在不同的分区或文件系统中,你仍然可以创建符号链接。

7、总结为什么目录空间扩容的时候,需要先扩容磁盘,再扩容分区,最后扩容文件系统?

  • 因为每一步都依赖于前一步。如果没有足够的磁盘空间,就无法扩容分区;如果没有足够的分区空间,就无法扩容文件系统。因此,扩容过程必须从底层(磁盘)开始,然后逐步向上(分区,文件系统)进行。
    1. 扩容磁盘:这是扩容过程的第一步,因为所有的数据都存储在磁盘上。如果磁盘的空间不足,那么分区和文件系统都无法扩容。扩容磁盘通常通过添加新的磁盘或者使用现有磁盘上未使用的空间来完成。

    2. 扩容分区:在磁盘扩容之后,需要对分区进行扩容。分区是磁盘上的一部分,它们可以包含一个或多个文件系统。如果分区的大小没有增加,那么即使磁盘的大小增加了,文件系统也无法利用这些额外的空间。

    3. 扩容文件系统:在分区扩容之后,最后一步是扩容文件系统。文件系统是用于存储和组织数据的一种方法,它决定了数据在磁盘上的布局。如果文件系统的大小没有增加,那么即使分区的大小增加了,用户也无法使用这些额外的空间。

8、Raid10和Raid01 有什么差别,为什么我们多选择Raid10而不是Raid01?

  • Raid10和Raid01 都为 <磁盘冗余阵列>
    • RAID 10: 数据首先被写入两个镜像磁盘; RAID 10 提供了很好的冗余和性能,因为它可以在失去一个或多个磁盘的情况下继续运行,只要不是同一对镜像磁盘都失效。
    • RAID 01: 在 RAID 01 配置中的一组磁盘中有一个磁盘失败,那么整个条带化阵列都将失效。
  • 所以 RAID 01 和 RAID 10 在性能上相似的情况下, RAID 10具有更好的故障恢复更好的冗余性能, 使用RAID 10 可以保证在磁盘故障后的恢复过程中,对系统的性能影响较小,确保数据的安全性,因此选择RAID 10

9、将各位将当前的虚拟机的根分区做扩容

  • 对sdc分区并格式化
bash
[root@centosmini01 data1]# parted -s /dev/sdc mklabel msdos [root@centosmini01 data1]# fdisk -l /dev/sdc Disk /dev/sdc: 10.7 GB, 10737418240 bytes, 20971520 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 Disk label type: dos Disk identifier: 0x000e0993 Device Boot Start End Blocks Id System [root@centosmini01 data1]# parted -s /dev/sdc mkpart primary 0% 100% [root@centosmini01 data1]# fdisk -l /dev/sdc Disk /dev/sdc: 10.7 GB, 10737418240 bytes, 20971520 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 Disk label type: dos Disk identifier: 0x000e0993 Device Boot Start End Blocks Id System /dev/sdc1 2048 20971519 10484736 83 Linux [root@centosmini01 data1]# mkfs.xfs /dev/sdc1 meta-data=/dev/sdc1 isize=512 agcount=4, agsize=655296 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=2621184, 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
  • 扩容根分区
  1. 创建一个物理卷(PV):
bash
[root@centosmini01 data1]# pvcreate /dev/sdc1 WARNING: xfs signature detected on /dev/sdc1 at offset 0. Wipe it? [y/n]: y Wiping xfs signature on /dev/sdc1. Physical volume "/dev/sdc1" successfully created.
  1. 将新创建的物理卷添加到现有的卷组(VG)中:
bash
[root@centosmini01 data1]# vgextend centos /dev/sdc1 Volume group "centos" successfully extended
  1. 扩展你的逻辑卷(LV):
bash
[root@centosmini01 data1]# lvextend -l +100%FREE /dev/centos/root Size of logical volume centos/root changed from 7.39 GiB (1892 extents) to <17.39 GiB (4451 extents). Logical volume centos/root successfully resized.
  1. 扩展 xfs 文件系统:
bash
[root@centosmini01 data1]# xfs_growfs /dev/mapper/centos-root meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=484352 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=1937408, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 1937408 to 4557824
  1. 检查是否扩容成功
bash
[root@centosmini01 data1]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 475M 0 475M 0% /dev tmpfs 487M 0 487M 0% /dev/shm tmpfs 487M 7.8M 479M 2% /run tmpfs 487M 0 487M 0% /sys/fs/cgroup /dev/mapper/centos-root 18G 1.7G 16G 10% / /dev/sda1 759M 163M 597M 22% /boot tmpfs 98M 0 98M 0% /run/user/0 /dev/sdb1 4.8G 20M 4.6G 1% /data /dev/sdb2 5.0G 33M 5.0G 1% /data1
  • /dev/mapper/centos-root(根文件系统)的大小现在是18G,可用空间为16G,只有10%的空间被使用。

网络部分:

1、已知一个CIDR地址块:128.14.35.7/20,请给出来这个cidr的网络地址,最小有效地址,子网掩码,最大地址,能分配几个 /22 的CIDR地址块,分别是那几个子网,每个网络地址是啥。要求写出你的计算过程。

CIDR 地址块:128.14.35.7/20

  • 网络地址:网络地址是 CIDR 块中的第一个地址。我们首先将 IP 地址的前 20 位保持不变,然后将后面的位设置为 0。这样,我们得到的网络地址是 128.14.32.0。

  • 最小有效地址:最小有效地址是网络地址后的第一个地址,即 128.14.32.1。

  • 子网掩码:/20 的子网掩码表示前 20 位是网络部分,后 12 位是主机部分。所以子网掩码是 255.255.240.0。

  • 最大地址:最大地址是将 IP 地址的前 20 位保持不变,然后将后面的位设置为 1。这样,我们得到的最大地址是 128.14.47.255。

  • /22 的 CIDR 地址块数量:/20 的 CIDR 地址块可以被分成 4 个 /22 的 CIDR 地址块,因为 2^(22-20) = 4。

  • /22 的 CIDR 地址块:这 4 个 /22 的 CIDR 地址块的网络地址分别是:

    1. 128.14.32.0/22
    2. 128.14.36.0/22
    3. 128.14.40.0/22
    4. 128.14.44.0/22

2、已知172.16.34.78/17这个地址,求它的网络地址,最小有效地址,子网掩码,最大地址。这个/17的CIDR,我想再分配出来一个/18的CIDR,和两个/19的CIDR,该怎么分配?分别给出每个CIDR的网络地址?

CIDR 地址块:172.16.34.78/17

  • 网络地址:网络地址是 CIDR 块中的第一个地址。我们首先将 IP 地址的前 17 位保持不变,然后将后面的位设置为 0。这样,我们得到的网络地址是 172.16.0.0。

  • 最小有效地址:最小有效地址是网络地址后的第一个地址,即 172.16.0.1。

  • 子网掩码:/17 的子网掩码表示前 17 位是网络部分,后 15 位是主机部分。所以子网掩码是 255.255.128.0。

  • 最大地址:最大地址是将 IP 地址的前 17 位保持不变,然后将后面的位设置为 1。这样,我们得到的最大地址是 172.16.127.255。

  • CIDR 分配:/17 的 CIDR 地址块可以被分成 1 个 /18 的 CIDR 地址块和 2 个 /19 的 CIDR 地址块。这些 CIDR 地址块的网络地址分别是:

    1. /18:172.16.0.0/18
    2. /19:172.16.64.0/19
    3. /19:172.16.96.0/19

3、还是2题中的这个CIDR,如果我想分配出3个 /18的CIDR地址段,能不能分的出来,为什么?

  • 对于 /17 的 CIDR 地址块,我们无法分配出 3 个 /18 的 CIDR 地址段。因为 /17 只包含 2^(18-17) = 2 个 /18 的 CIDR 地址段。所以,我们无法从 /17 的 CIDR 地址块中分配出 3 个 /18 的 CIDR 地址段。

4、画出TCP/IP的5层分层图

  • TCP/IP 网络通常是由上到下分成 4 层,分别是应用层传输层网络层网络接口层

03b750400d39d22d91bfb56e539ebefe.image.webp

  • 每一层的封装格式

bc7c3c062fa95eb9b5d20743e5911811.image.webp

网络接口层的传输单位是帧(frame)IP 层的传输单位是包(packet)TCP 层的传输单位是段(segment),**HTTP **的传输单位则是消息或报文(message)。但这些名词并没有什么本质的区分,**可以统称为数据包**

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:GYC

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!