Linux云计算 |【第一阶段】ENGINEER-DAY2

主要内容:

磁盘空间管理fdisk、parted工具、开机自动挂载、文件系统、交换空间

KVM虚拟化 实操前骤:

1)添加一块硬盘(磁盘),需要关机才能进行操作,点击左下角【添加硬件】

2)选择20GB,点击创建完成,显示磁盘2

3)KVM虚拟机的独创磁盘接口vda/vdb(优点:传输快,缺点:与实际的磁盘接口不符

4)列出当前系统识别的硬盘(lsblk)

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0              11:0    1  8.8G  0 rom  /run/media/root/CentOS 7 x86_64
vda             252:0    0   20G  0 disk 
├─vda1          252:1    0    1G  0 part /boot
└─vda2          252:2    0   19G  0 part ├─centos-root 253:0    0   17G  0 lvm  /└─centos-swap 253:1    0    2G  0 lvm  [SWAP]
vdb             252:16   0   20G  0 disk 

VMware虚拟化 实操前骤:

1)关闭虚拟机CentOS7,打开【编辑虚拟机设置】,进行添加设备

2)点击“添加”

3)添加硬盘

4)选择SCSI磁盘

5)选择创建新虚拟磁盘

6)设置磁盘大小

7)设置指定磁盘文件的路径

8)设置指定磁盘文件的路径

9)查看是否有硬盘2


一、磁盘结构及概念

磁盘结构是指计算机存储设备(如硬盘、固态硬盘等)的物理和逻辑组织方式

  1. 步骤:识别硬盘(HDD/SSD) -> 分区规划 -> 文件系统格式化 -> 挂载使用
  2. 类似:毛坯楼层 — 打隔断 — 装修 — 入驻

1、物理结构

机械硬盘(HDD)

  • 盘片(Platter):硬盘通常由多个盘片组成,每个盘片都有两面,每面都有一个读写头
  • 磁道(Track):每个盘片上的同心圆环称为磁道
  • 扇区(Sector):磁道被划分为若干个扇区,每个扇区通常存储512字节或4096字节的数据
  • 柱面(Cylinder):所有盘片上同一位置的磁道组成一个柱面

固态硬盘(SSD)

  • 闪存芯片(Flash Memory Chip):SSD使用闪存芯片来存储数据,没有机械部件
  • NAND单元:闪存芯片由多个NAND单元组成,每个单元可以存储一个或多个比特的数据

2、逻辑结构

分区(Partition)

  • 主分区(Primary Partition):硬盘上可以有多个主分区,每个主分区可以独立格式化并安装操作系统
  • 扩展分区(Extended Partition):扩展分区可以包含多个逻辑分区
  • 逻辑分区(Logical Partition):扩展分区内的分区称为逻辑分区

文件系统(File System)

  • 引导块(Boot Block):存储引导程序,用于启动操作系统
  • 超级块(Super Block):存储文件系统的元数据,如块大小、空闲块数量等
  • inode表(Inode Table):存储文件的元数据,如文件大小、权限、时间戳等
  • 数据块(Data Block):存储文件的实际数据
​​​​[root@localhost ~]# lsblk      //列出当前系统识别的硬盘
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0              11:0    1  8.8G  0 rom  /run/media/root/CentOS 7 x86_64
vda             252:0    0   20G  0 disk 
├─vda1          252:1    0    1G  0 part /boot
└─vda2          252:2    0   19G  0 part ├─centos-root 253:0    0   17G  0 lvm  /└─centos-swap 253:1    0    2G  0 lvm  [SWAP]
vdb             252:16   0   20G  0 disk 

注意:vda*/vdb*命名为KVM虚拟机独有的磁盘接口,实际磁盘接口表现为sda*/sdb*

3、磁盘管理

格式化(Formatting)

  • 低级格式化(Low-level Formatting):初始化磁盘的物理结构,创建磁道和扇区
  • 高级格式化(High-level Formatting):创建文件系统,初始化超级块、inode表和数据块

分区表(Partition Table)

  • MBR(Master Boot Record):传统的分区表格式,支持最多4个主分区或3个主分区加1个扩展分区
  • GPT(GUID Partition Table):现代的分区表格式,支持更多分区,更大的磁盘容量,并且更可靠

4、磁盘性能

  • 寻道时间(Seek Time):硬盘读写头移动到指定磁道所需的时间
  • 旋转延迟(Rotational Latency):盘片旋转到指定扇区所需的时间
  • 传输速率(Transfer Rate):数据从磁盘传输到内存的速率

5、磁盘调度算法

  • 先来先服务(FCFS):按请求到达的顺序进行服务
  • 最短寻道时间优先(SSTF):选择当前磁头位置最近的请求进行服务
  • 电梯算法(SCAN):磁头在磁盘上按一个方向移动,直到没有请求为止,然后反向移动
  • 循环扫描(C-SCAN):磁头在磁盘上按一个方向移动,直到没有请求为止,然后返回起点重新开始

6、计算机容量单位

一般用B,KB,MB,GB,TB,PB,EB,ZB,YB,BB来表示,它们之间的关系是:

  • 1KB (Kilobyte 千字节)=1024B,
  • 1MB (Megabyte 兆字节 简称“兆”)=1024KB,
  • 1GB (Gigabyte 吉字节 又称“千兆”)=1024MB,
  • 1TB (Terabyte 万亿字节 太字节)=1024GB,
  • 1PB (Petabyte 千万亿字节 拍字节)=1024TB,
  • 1EB (Exabyte 百亿亿字节 艾字节)=1024PB,
  • 1ZB (Zettabyte 十万亿亿字节 泽字节)= 1024 EB,
  • 1YB (Yottabyte 一亿亿亿字节 尧字节)= 1024 ZB,
  • 1BB (Brontobyte 一千亿亿亿字节)= 1024 YB.

二、磁盘分区规划

主流分区方案(分区模式): MBR 与 GPT

注意:分区规划中,MBR分区模式与GPT分区模式不共存;

MBR / msods分区模式

  • 分区类型:主分区、扩展分区(占用所有剩余空间)、逻辑分区
  • 一般分区规划:① 1~4个主分区,② 0~3个主分区+1个扩展分区(n个逻辑分区)
  • MBR分区模式 最大支持容量为2.2TB的磁盘
  • 最多只能有 4个主分区,扩展分区可以没有,最多只有1个
  • 扩展分区不能格式化,空间也不能直接存储数据(目的为产生逻辑分区存储数据)
  • 可以用于存储数据的分区:主分区与逻辑分区

1、fdisk分区工具

  • 格式:fdisk -l /dev/sda     //查看分区表
  • 格式:fdisk 硬盘设备 (例如:/dev/sda)

步骤1:

[root@localhost ~]# fdisk -l /dev/vdb       ## 查看分区表
磁盘 /dev/vdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节[root@localhost ~]# fdisk /dev/vdb          ## 对硬盘进行分区规划
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x6ab34c3a 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):p     ## 查看现有的分区表(类似fdisk -l /dev/vdb )
磁盘 /dev/vdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6ab34c3a设备 Boot      Start         End      Blocks   Id  System命令(输入 m 获取帮助):n              ## 新建分区
Partition type:p   primary (0 primary, 0 extended, 4 free)      ## 主分区数e   extended                      ## 扩展分区数
Select (default p):                  ## 默认先创建主分区
Using default response p
分区号 (1-4,默认 1):                    ## 默认分区号为1
起始 扇区 (2048-41943039,默认为 2048):   ## 默认起始大小2048
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+2G  //设置大小为2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB命令(输入 m 获取帮助):n
Partition type:p   primary (1 primary, 0 extended, 3 free)e   extended
Select (default p): 
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (4196352-41943039,默认为 4196352):
将使用默认值 4196352
Last 扇区, +扇区 or +size{K,M,G} (4196352-41943039,默认为 41943039):+1G
分区 2 已设置为 Linux 类型,大小设为 1 GiB命令(输入 m 获取帮助):p
磁盘 /dev/vdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6ab34c3a设备 Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048     4196351     2097152   83  Linux
/dev/vdb2         4196352     6293503     1048576   83  Linux命令(输入 m 获取帮助):w        ## 保存更改并退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。[root@localhost ~]# lsblk      ## 查看分区表,挂载目录
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0              11:0    1  8.8G  0 rom  /run/media/root/CentOS 7 x86_64
vda             252:0    0   20G  0 disk 
├─vda1          252:1    0    1G  0 part /boot
└─vda2          252:2    0   19G  0 part ├─centos-root 253:0    0   17G  0 lvm  /└─centos-swap 253:1    0    2G  0 lvm  [SWAP]
vdb             252:16   0   20G  0 disk 
├─vdb1          252:17   0    2G  0 part 
└─vdb2          252:18   0    1G  0 part 

2、partprobe识别新分区表

当硬盘的分区表被更改以后,需要将分区表的变化及时通知Linux内核,建议reboot,否则在访问分区时可能会找不到准确的设备;

注意:因磁盘已有分区设备正在运行,需要通过reboot或partprobe 刷新分区表

步骤2:

[root@localhost ~]# fdisk /dev/vdb      ## 对硬盘进行分区规划
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):p
磁盘 /dev/vdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6ab34c3a设备 Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048     4196351     2097152   83  Linux
/dev/vdb2         4196352     6293503     1048576   83  Linux命令(输入 m 获取帮助):n
Partition type:p   primary (2 primary, 0 extended, 2 free)e   extended
Select (default p): 
Using default response p
分区号 (3,4,默认 3):
起始 扇区 (6293504-41943039,默认为 6293504):
将使用默认值 6293504
Last 扇区, +扇区 or +size{K,M,G} (6293504-41943039,默认为 41943039):+2G
分区 3 已设置为 Linux 类型,大小设为 2 GiB命令(输入 m 获取帮助):n
Partition type:p   primary (3 primary, 0 extended, 1 free)e   extended
Select (default e):       ## 创建扩展分区
Using default response e
已选择分区 4
起始 扇区 (10487808-41943039,默认为 10487808):
将使用默认值 10487808
Last 扇区, +扇区 or +size{K,M,G} (10487808-41943039,默认为 41943039):
将使用默认值 41943039
分区 4 已设置为 Extended 类型,大小设为 15 GiB   ## 注意将剩余空间给扩展分区命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 5
起始 扇区 (10489856-41943039,默认为 10489856):
将使用默认值 10489856
Last 扇区, +扇区 or +size{K,M,G} (10489856-41943039,默认为 41943039):+900M
分区 5 已设置为 Linux 类型,大小设为 900 MiB命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 6
起始 扇区 (12335104-41943039,默认为 12335104):
将使用默认值 12335104
Last 扇区, +扇区 or +size{K,M,G} (12335104-41943039,默认为 41943039):+2G
分区 6 已设置为 Linux 类型,大小设为 2 GiB命令(输入 m 获取帮助):p
磁盘 /dev/vdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6ab34c3a设备 Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048     4196351     2097152   83  Linux
/dev/vdb2         4196352     6293503     1048576   83  Linux
/dev/vdb3         6293504    10487807     2097152   83  Linux
/dev/vdb4        10487808    41943039    15727616    5  Extended
/dev/vdb5        10489856    12333055      921600   83  Linux
/dev/vdb6        12335104    16529407     2097152   83  Linux命令(输入 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)
正在同步磁盘。[root@localhost ~]# partprobe      ## 刷新分区表
Warning: 无法以读写方式打开 /dev/sr0 (只读文件系统)。/dev/sr0 已按照只读方式打开。[root@localhost ~]# fdisk -l /dev/vdb    ## 查看已有的分区表
磁盘 /dev/vdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6ab34c3a设备 Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048     4196351     2097152   83  Linux
/dev/vdb2         4196352     6293503     1048576   83  Linux
/dev/vdb3         6293504    10487807     2097152   83  Linux
/dev/vdb4        10487808    41943039    15727616    5  Extended
/dev/vdb5        10489856    12333055      921600   83  Linux
/dev/vdb6        12335104    16529407     2097152   83  Linux
##注意:/dev/vdb4为扩展分区,不存储数据,以Extended往上为主分区,以Extended往下为逻辑分区;[root@localhost ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0              11:0    1  8.8G  0 rom  /run/media/root/CentOS 7 x86_64
vda             252:0    0   20G  0 disk 
├─vda1          252:1    0    1G  0 part /boot
└─vda2          252:2    0   19G  0 part ├─centos-root 253:0    0   17G  0 lvm  /└─centos-swap 253:1    0    2G  0 lvm  [SWAP]
vdb             252:16   0   20G  0 disk 
├─vdb1          252:17   0    2G  0 part /mypart1
├─vdb2          252:18   0    1G  0 part /mypart2
├─vdb3          252:19   0    2G  0 part 
├─vdb4          252:20   0  512B  0 part 
├─vdb5          252:21   0  900M  0 part 
└─vdb6          252:22   0    2G  0 part 

三、格式化分区

格式化分区是指在存储设备(如硬盘、固态硬盘、USB闪存驱动器等)上创建文件系统的过程。这个过程使得操作系统能够识别和使用该分区来存储和管理文件。格式化分区通常包括以下几个步骤:

  1. 低级格式化(Low-level Formatting):这是在制造过程中或使用特殊工具进行的操作,它将磁盘划分为磁道和扇区,为每个扇区分配一个地址。低级格式化通常不需要用户手动执行,因为它在磁盘出厂时已经完成

  2. 分区(Partitioning):在磁盘上创建一个或多个分区,每个分区可以独立使用。分区可以使用工具如 fdiskgdisk 或图形界面工具如 GParted 来完成。分区表(如 MBR 或 GPT)记录了这些分区的位置和大小

  3. 高级格式化(High-level Formatting):这是用户通常所说的“格式化”,它涉及在分区上创建文件系统。文件系统定义了数据如何存储和检索,包括目录结构、文件元数据(如权限、时间戳)和数据块的分配方式。常见的文件系统包括 NTFS、FAT32、exFAT、HFS+、APFS、ext3、ext4 等(补充:ext4适合存储数据个数多、容量小,xfs适合存储单个数据容量大)

格式化分区的主要目的是:

  • 准备存储设备:使操作系统能够识别和使用该设备
  • 创建文件系统:定义数据存储和组织的规则
  • 清除数据:格式化分区通常会删除分区上的所有数据,使其无法恢复(尽管在某些情况下,专业数据恢复服务可能仍然能够恢复部分数据)

1、mkfs格式化工具

  • 格式:[mkfs.ext3] 分区设备路径
  • 格式:[mkfs.ext4] 分区设备路径
  • 格式:[mkfs.xfs] 分区设备路径
[root@localhost ~]# mkfs.   //双击[Tab]可查看文件系统类型
mkfs.btrfs   mkfs.ext2    mkfs.ext4    mkfs.minix   mkfs.vfat    
mkfs.cramfs  mkfs.ext3    mkfs.fat     mkfs.msdos   mkfs.xfs  

2、创建文件系统(格式化分区设备)

用途:按照需要的不同的文件系统类型进行格式化分区

步骤3:

① /dev/vdb1 ==> EXT4类型

[root@localhost ~]# mkfs.ext4 /dev/vdb1    //格式化分区为ext4文件系统
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 

② /dev/vdb2 ==> XFS类型

[root@localhost ~]# mkfs.xfs /dev/vdb2    //格式化分区为xfs文件系统
meta-data=/dev/vdb2              isize=512    agcount=4, agsize=65536 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=262144, 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

③ 查看UUID和文件系统

[root@localhost ~]# blkid /dev/vdb1     //查看UUID和文件系统
/dev/vdb1: UUID="b88a568a-6e22-473e-a8ba-2f459ce4dfa3" TYPE="ext4" 
[root@localhost ~]# blkid /dev/vdb2
/dev/vdb2: UUID="842a2040-bdb8-4bcb-ac49-2f338fd6bea6" TYPE="xfs" 

3、blkid识别文件系统类型工具

用途:查看分区设备的UUID和文件系统类型

格式:blkid 分区设备路径 (例如:/dev/vdb1)

例如:

[root@localhost ~]# blkid /dev/vdb1
/dev/vdb1: UUID="b88a568a-6e22-473e-a8ba-2f459ce4dfa3" TYPE="ext4" 
[root@localhost ~]# blkid /dev/vdb2
/dev/vdb2: UUID="842a2040-bdb8-4bcb-ac49-2f338fd6bea6" TYPE="xfs" 

四、访问文件系统

1、访问已格式化的分区

使用mount命令挂载,并访问已格式化的分区测试

注意:挂载的分区设备对应一个分区,不能多个分区设备同时挂载同一个访问点;

步骤4:

[root@localhost ~]# mkdir /mypart1 /mypart2
[root@localhost ~]# mount /dev/vdb1 /mypart1/
[root@localhost ~]# mount /dev/vdb2 /mypart2/
[root@localhost ~]# df -h | grep mypart
/dev/vdb1                2.0G  6.0M  1.8G    1% /mypart1
/dev/vdb2               1014M   33M  982M    4% /mypart2

2、df 工具检查使用情况

用途:显示正在挂载的设备信息(文件系统或对应分区设备、使用容量、挂载点)

格式:df [-h]

选项:[-h] 显示单位(K、M、G)

例如:

[root@localhost ~]# df -h /
文件系统                    容量  已用  可用  已用%  挂载点
/dev/mapper/centos-root   17G  4.4G  13G  26%   /

注意:不添加访问点,因目录创建在根目录下,则占用根目录的设备的存储空间

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

配置文件 /etc/fstab 。实现开机自动挂载

记录格式:分区设备路径 挂载点 文件系统类型 参数 备份标记 检测顺序

部分记录说明:

  • 参数:defults,命令的集合
  • 备份标记:0,代表不备份(系统的dump可备份分区文件,但效率及成功率低)
  • 检测顺序:0,磁盘设备检测

- mount -a 作用:

① 检测/etc/fstab文件配置是否错误,按照Linux系统识别方法进行挂载

② 检测/etc/fstab中,配置书写完成,但当前没有挂载的设备,将进行自动挂载

步骤5:

[root@localhost ~]# vim /etc/fstab 
# /etc/fstab
# Created by anaconda on Mon Mar  1 14:53:18 2021
#
# 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=2ac42f49-b787-4b0f-8137-68b1424e033b  /boot  xfs defaults    0 0
/dev/mapper/centos-swap swap       swap    defaults        0 0
/dev/vdb1 /mypart1 ext4 defaults 0 0
/dev/vdb2 /mypart2 xfs defaults 0 0

验证1:

[root@localhost ~]# mount -a //无报错信息则不方便识别,需进行卸载挂载点验证

验证2:

根据配置文件自动挂载验证,若不能自动挂载则说明有问题

[root@localhost ~]# umount /mypart1
[root@localhost ~]# umount /mypart2
[root@localhost ~]# df -h | grep mypart
[root@localhost ~]# mount -a    //根据配置文件自动挂载
[root@localhost ~]# df -h | grep mypart
/dev/vdb1                2.0G  6.0M  1.8G    1% /mypart1
/dev/vdb2               1014M   33M  982M    4% /mypart2
[root@localhost ~]# reboot   //重启(非必须)

常见报错1:文件系统类型写错

[root@localhost ~]# vim /etc/fstab 
/dev/vdb1 /mypart1 ext3 defaults 0 0
[root@localhost ~]# mount -a
mount: 文件系统类型错误、选项错误、/dev/vdb1 上有坏超级块、缺少代码页或助手程序,或其他错误有些情况下在 syslog 中可以找到一些有用信息- 请尝试dmesg | tail  这样的命令看看。

常见报错2:挂载点目录写错

[root@localhost ~]# vim /etc/fstab 
/dev/vdb2 /mypart3 xfs defaults 0 0
[root@localhost ~]# mount -a
mount: 挂载点 /mypart3 不存在

常见报错3:在挂载点目录下umount

[root@localhost mypart2]# umount /mypart2
umount: /mypart2:目标忙。(有些情况下通过 lsof(8) 或 fuser(1) 可以找到有关使用该设备的进程的有用信息)

常见报错4:挂载的分区设备不存在

[root@localhost ~]# vim /etc/fstab 
/dev/vdc2 /mypart3 xfs defaults 0 0
[root@localhost /]# mount -a
mount: 特殊设备 /dev/vdc2 不存在

如果/etc/fstab文件有误又进行重启,【进入维护模式】修复办法:

重启后,因系统无法找到分区设备,将进入交互界面再修改配置

1.输入root密码

2.修改/etc/fstab配置文件

3.确认无误后,进行reboot重启

步骤总结:

步骤1:识别硬盘lsblk

步骤2:分区规划fdisk、fdisk -l(MBR分区模式)

步骤3:刷新分区表partprode

步骤4:格式化文件系统mkfs,ext4 mkds.xfs(blkid查看文件系统)

步骤5:挂载mount,修改/etc/fstab开机自动挂载(mount -a、df -h查看挂载磁盘信息)

补充:/dev/sda5表示含义:

① SCSI接口设备第一块的第一个逻辑分区;

② SCSI接口设备第一块的第5个分区

五、GPT分区模式及Parted工具

GPT分区模式(GPT,GUID Partition Table)

  • 全局唯一标识分区表;
  • 突破固定大小64字节的分区表限制;
  • 最多可支持128个主分区,最大支持18EB磁盘;(1EB=1024PB=1024x1024TB)

注意:一块硬盘只能有一个分区方案,MBR与GPT不能共存;

注意:工作环境中,分区尽量不大于10个,不易维护;

1、parted分区指令工具(可划分MBR也可划分GPT)

格式:parted 硬盘设备 [指令]...

指令:

  • [ help ]   //查看指令帮助
  • [ mktable msdos|gpt]    //建立指定模式分区表(可指定MBR或GPT)
  • [ mkpart 分区名称 文件系统类型 start end ]    //指定大小或百分比%作为起始、结束位置
  • [ print ]   //查看分区表
  • [ rm 序号 ]   //删除指定的分区
  • [ quit ]    //退出交互环境

注意:划分分区时,起始点与结束点位置需要计算首尾,非fdisk+容量大小方式;

正常报错提示:

[root@localhost images]# parted /dev/vdb     //对磁盘进行分区                                                     
错误: /dev/vdb: unrecognised disk label    //正常报错:提示没有指定分区模式
...

注意:fdisk分区工具没有报错,因fdisk未指定分区模式时默认为MBR分区模式


例如1:

[root@localhost images]# parted /dev/vdb     //对磁盘进行分区
GNU Parted 3.1
使用 /dev/vdb
Welcome to GNU Parted! Type 'help' to view a list of commands.(parted) print          //查看分区表                                    
错误: /dev/vdb: unrecognised disk label
Model: Virtio Block Device (virtblk)                                      
Disk /dev/vdb: 85.9GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:(parted) mktable gpt       //指定分区模式为GPT                                               (parted) print              //查看分区表                                                
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 85.9GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number  Start  End  Size  File system  Name  标志(parted) mkpart         //划分磁盘分区                                           
分区名称?  []? haha        //说明分区名称(随便写)                                        
文件系统类型?  [ext2]? ext4        //说明文件系统类型(仅说明。不会进行格式化)                                      
起始点? 0       //指定起始点位置                                                         
结束点? 10G    //指定结束点位置                                                          
警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel? Ignore      //因需划分系统保留数据空间,选择忽略即可                                       (parted) print                                                            
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 85.9GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number  Start   End     Size     File system  Name  标志1      17.4kB  10.0GB  10000MB               haha

例如2:

(parted) unit      //双击[Tab]可查看显示的单位                                                      
align-check  mklabel      print        resizepart   toggle       
disk_set     mkpart       quit         rm           unit         
disk_toggle  mktable      rescue       select       version      
help         name         resize       set          
(parted) unit GB    //选择GB为显示单位(parted) print      //查看size大小,已显示GB单位                                                     
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 85.9GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number  Start   End     Size    File system  Name  标志1      0.00GB  10.0GB  10.0GB               haha
(parted) mkpart     //划分第2个分区
分区名称?  []? haha                                                      
文件系统类型?  [ext2]? ext4
起始点? 10G                                                              
结束点? 20G                                                              
(parted) mkpart     //划分第3个分区
分区名称?  []? xixi                                                      
文件系统类型?  [ext2]? ext4                                              
起始点? 20G                                                              
结束点? 30G                                                              
(parted) quit      //与fdisk不同,无w保存概念,划分分区时已编写磁盘操作                                           
信息: You may need to update /etc/fstab.[root@localhost images]# lsblk                                            
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0              11:0    1  8.8G  0 rom  /run/media/root/CentOS 7 x86_64
vda             252:0    0   20G  0 disk
├─vda1          252:1    0    1G  0 part /boot
└─vda2          252:2    0   19G  0 part├─centos-root 253:0    0   17G  0 lvm  /└─centos-swap 253:1    0    2G  0 lvm  [SWAP]
vdb             252:16   0   80G  0 disk
├─vdb1          252:17   0  9.3G  0 part     //进律GIB:1024  GB:1000
├─vdb2          252:18   0  9.3G  0 part
└─vdb3          252:19   0  9.3G  0 part

例如3:通过命令方式进行分区划分

[root@localhost /]# parted /dev/vdb mkpart haha ext4 40G 50G
信息: You may need to update /etc/fstab.
[root@localhost /]# lsblk                                                 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0              11:0    1  8.8G  0 rom  /run/media/root/CentOS 7 x86_64
vda             252:0    0   20G  0 disk
├─vda1          252:1    0    1G  0 part /boot
└─vda2          252:2    0   19G  0 part├─centos-root 253:0    0   17G  0 lvm  /└─centos-swap 253:1    0    2G  0 lvm  [SWAP]
vdb             252:16   0   80G  0 disk
├─vdb1          252:17   0  9.3G  0 part
├─vdb2          252:18   0  9.3G  0 part
├─vdb3          252:19   0  9.3G  0 part
└─vdb4          252:20   0  9.3G  0 part

例如4:通过命令方式进行分区划分,大小位置可用%表示(需要计算,计算错误则报错)

[root@localhost /]# parted /dev/vdb mkpart xixi ext4 50G 100%
信息: You may need to update /etc/fstab.
[root@localhost /]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0              11:0    1  8.8G  0 rom  /run/media/root/CentOS 7 x86_64
vda             252:0    0   20G  0 disk
├─vda1          252:1    0    1G  0 part /boot
└─vda2          252:2    0   19G  0 part├─centos-root 253:0    0   17G  0 lvm  /└─centos-swap 253:1    0    2G  0 lvm  [SWAP]
vdb             252:16   0   80G  0 disk
├─vdb1          252:17   0  9.3G  0 part
├─vdb2          252:18   0  9.3G  0 part
├─vdb3          252:19   0  9.3G  0 part
├─vdb4          252:20   0  9.3G  0 part
└─vdb5          252:21   0 33.4G  0 part

提示:重新指定分区模式,则删除磁盘所有内容并提示是否重新指定分区模式

(parted) mktable gpt
警告: The existing disk label on /dev/vdb will be destroyed and all data on this
disk will be lost. Do you want to continue?
是/Yes/否/No?

注意:如果磁盘内容不重要,可根据mktable gpt方式重置分区

常见报错:Unit选择进律单位,指令输入有误

(parted) unit                                                             
Unit?  [compact]? unit GB
parted: invalid token: unit

常见报错:# rm -rf /dev/vdb

硬盘设备是特殊存在,若要去掉硬盘,需要拔掉硬件;做磁盘分区的删除操作必须用磁盘工具进行删除(例如:fdisk、parted)

常见报错:错误的文件系统类型,会报错

文件系统类型?  [ext2]? cd                                                
parted: invalid token: cd

常见报错:新划分磁盘分区的起始点位置在其它磁盘的起始结束点位置当中

(parted) mkpart  
分区名称?  []? xixi                                                      
文件系统类型?  [ext2]?                                                   
起始点? 11G                                                              
结束点? 30G                                                              
警告: You requested a partition from 11.0GB to 30.0GB (sectors
21484375..58593750).
The closest location we can manage is 20.0GB to 30.0GB (sectors
39061504..58593750).
Is this still acceptable to you?
是/Yes/否/No? n

注意:若新划分磁盘分区的起始点可以不再前一块磁盘的结束点位置创建,但计算位置大小麻烦,不建议此方式划分。

六、SWAP交换空间

用途:利用硬盘的空闲空间充当内存的空间,创建新的分区;当物理内存即将占满,CPU可以将内存中的数据暂时放入交换空间中,缓解真实物理内存的压力;(CPU--->内存--->硬盘)

交换空间最好为内存的2倍,交换空间最大不会超过16G


案例1:利用硬盘分区方式制作交换空间(分区扩展)

1、创建Swap分区

首先添加20G硬盘进行(MBR分区模式)规划分区,划分2个2G的主分区、1个3G的主分区、2个4G的逻辑分区;

步骤1:

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vdc             252:32   0   20G  0 disk
...[root@localhost ~]# fdisk /dev/vdc
命令(输入 m 获取帮助):n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB命令(输入 m 获取帮助):n
Partition type:p   primary (1 primary, 0 extended, 3 free)e   extended
Select (default p):
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (4196352-41943039,默认为 4196352):
将使用默认值 4196352
Last 扇区, +扇区 or +size{K,M,G} (4196352-41943039,默认为 41943039):+2G
分区 2 已设置为 Linux 类型,大小设为 2 GiB命令(输入 m 获取帮助):n
Partition type:p   primary (2 primary, 0 extended, 2 free)e   extended
Select (default p):
Using default response p
分区号 (3,4,默认 3):
起始 扇区 (8390656-41943039,默认为 8390656):
将使用默认值 8390656
Last 扇区, +扇区 or +size{K,M,G} (8390656-41943039,默认为 41943039):+3G
分区 3 已设置为 Linux 类型,大小设为 3 GiB命令(输入 m 获取帮助):n
Partition type:p   primary (3 primary, 0 extended, 1 free)e   extended
Select (default e):
Using default response e
已选择分区 4
起始 扇区 (14682112-41943039,默认为 14682112):
将使用默认值 14682112
Last 扇区, +扇区 or +size{K,M,G} (14682112-41943039,默认为 41943039):
将使用默认值 41943039
分区 4 已设置为 Extended 类型,大小设为 13 GiB命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 5
起始 扇区 (14684160-41943039,默认为 14684160):
将使用默认值 14684160
Last 扇区, +扇区 or +size{K,M,G} (14684160-41943039,默认为 41943039):+4G
分区 5 已设置为 Linux 类型,大小设为 4 GiB命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 6
起始 扇区 (23074816-41943039,默认为 23074816):
将使用默认值 23074816
Last 扇区, +扇区 or +size{K,M,G} (23074816-41943039,默认为 41943039):+4G
分区 6 已设置为 Linux 类型,大小设为 4 GiB命令(输入 m 获取帮助):p
磁盘 /dev/vdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xb90c96e4设备 Boot      Start         End      Blocks   Id  System
/dev/vdc1            2048     4196351     2097152   83  Linux
/dev/vdc2         4196352     8390655     2097152   83  Linux
/dev/vdc3         8390656    14682111     3145728   83  Linux
/dev/vdc4        14682112    41943039    13630464    5  Extended
/dev/vdc5        14684160    23072767     4194304   83  Linux
/dev/vdc6        23074816    31463423     4194304   83  Linux命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vdc             252:32   0   20G  0 disk
├─vdc1          252:33   0    2G  0 part
├─vdc2          252:34   0    2G  0 part
├─vdc3          252:35   0    3G  0 part
├─vdc4          252:36   0    1K  0 part
├─vdc5          252:37   0    4G  0 part
└─vdc6          252:38   0    4G  0 part

2、格式化交换分区

格式:mkswap 分区设备   //格式化交换分区

注意:若有多个交换分区设备,优先级越大,当内存不够时就先使用哪个分区的设备

步骤2:

[root@localhost ~]# mkswap /dev/vdc1      //格式化交换分区
正在设置交换空间版本 1,大小 = 2097148 KiB
无标签,UUID=5ffda770-30ab-45fe-b9a2-7c276241e759[root@localhost ~]# blkid /dev/vdc1     //查看文件系统类型
/dev/vdc1: UUID="5ffda770-30ab-45fe-b9a2-7c276241e759" TYPE="swap"
[root@localhost ~]# swapon
NAME      TYPE      SIZE  USED PRIO    //PRIO数值越大,代表优先级越大
/dev/dm-1 partition   2G 56.5M   -1

3、启用/关闭交互分区

  • 格式:swapon 或 swapon -s     //查看交换分区
  • 格式:swapon 分区设备     //启用交互分区
  • 格式:swapoff 分区设备     //停用交换分区
  • 格式:swapon -a   //检测交换分区的书写(类似mount -a)

步骤3:

[root@localhost ~]# swapon /dev/vdc1   //启用交换分区
[root@localhost ~]# swapon     //查看交换空间组成的成员信息
NAME      TYPE      SIZE  USED PRIO
/dev/dm-1 partition   2G 56.5M   -1
/dev/vdc1 partition   2G    0B   -2
[root@localhost ~]# free -m    //显示内存和交换空间(m代表mb)total        used        free      shared  buff/cache   available
Mem:      991         689         72         5        229         115
Swap:      4095         56        4039[root@localhost ~]# swapoff /dev/vdc1    //停用交换分区
[root@localhost ~]# swapon
NAME      TYPE      SIZE  USED PRIO
/dev/dm-1 partition   2G 56.1M   -1
[root@localhost ~]# free -mtotal        used        free      shared  buff/cache   available
Mem:      991         688          73           5         229         116

4、开机自启交换分区挂载

步骤4:修改/etc/fstab配置文件

注意:swapon -a专门检测/etc/fstab文件充当交换分区的设备

[root@localhost ~]# swapon
NAME      TYPE      SIZE  USED PRIO
/dev/dm-1 partition   2G 56.1M   -1[root@localhost ~]# vim /etc/fstab
/dev/vdc1 swap swap defaults 0 0
[root@localhost ~]# swapoff /dev/vdc1
[root@localhost ~]# swapon
NAME      TYPE      SIZE  USED/ PRIO
/dev/dm-1 partition   2G 55.9M   -1
[root@localhost ~]# swapon -a      //检测交换分区的书写
[root@localhost ~]# swapon
NAME      TYPE      SIZE  USED PRIO
/dev/dm-1 partition   2G 55.9M   -1
/dev/vdc1 partition   2G    0B   -2

补充:逻辑卷/dev/centos/swap对应交换空间中的/dev/dm-1设备(逻辑卷充当了交换空间)

[root@localhost ~]# lvscanACTIVE            '/dev/centos/swap' [2.00 GiB] inheritACTIVE            '/dev/centos/root' [<17.00 GiB] inherit[root@localhost ~]# swapon -s
文件名 类型 大小   已用   权限
/dev/dm-1      partition 2097148 58800 -1
/dev/vdc1      partition 2097148 0     -2[root@localhost ~]# ls -l /dev/centos/swap
lrwxrwxrwx. 1 root root 7 3月  10 16:45 /dev/centos/swap -> ../dm-1

七、扩展Swap空间

利用文件方式创建Swap空间(生成较大的文件占用硬盘空间,并把占用空间提供给交换空间)

格式:dd  if=源设备  of=目标设备  bs=块大小  count=块数    //记录读写数据

备注:dd  if=数据的源头  of=生成的文件  bs=每次读写数据的大小  count=次数

- /dev/zero设备:拥有无限的数据

注意:swapon支持文件

注意:dd命令一直读写数据,直到系统存储满才结束,of可以协助生成文件


案例2:利用文件方式制作交换空间(文件扩展)

1、创建Swap文件

步骤1:

[root@localhost ~]# dd if=/dev/zero of=/opt/sw.txt bs=1M count=2048
记录了2048+0 的读入
记录了2048+0 的写出
2147483648字节(2.1 GB)已复制,12.4918 秒,172 MB/秒
[root@localhost ~]# ls -lh /opt/sw.txt
-rw-r--r--. 1 root root 2.0G 3月  10 19:26 /opt/sw.txt

2、格式化交换文件(swap文件系统)

格式:mkswap [-f] 交换文件

选项:[-f]  标识强制执行(force)的意思(与RPM选项相同)

步骤2:

[root@localhost ~]# mkswap /opt/sw.txt     //格式化交换文件
正在设置交换空间版本 1,大小 = 2097148 KiB
无标签,UUID=64da8ee5-86d7-4be4-b05f-ad5e0901aaa8[root@localhost ~]# swapon /opt/sw.txt    //启用交换文件
swapon: /opt/sw.txt:不安全的权限 0644,建议使用 0600。
[root@localhost ~]# swapon -s
文件名 类型 大小 已用 权限
/dev/dm-1         partition 2097148 69308 -1
/dev/vdc1          partition 2097148 0 -2
/opt/sw.txt                file 2097148 0 -3

3、开机自动挂载

#  vim /etc/fstab
/opt/1.txt swap swap defaults 0 0

小结:

本篇章节为 【第一阶段】ENGINEER-DAY2 的学习笔记,可以初步了解到 磁盘空间管理fdisk、parted工具、开机自动挂载、文件系统、交换空间。除此之外推荐参考相关学习网址:

  • 菜鸟教程 - 学的不仅是技术,更是梦想!

Tip:毕竟两个人的智慧大于一个人的智慧,如果你不理解本章节的内容或需要相关笔记、视频,可私信小安,请不要害羞和回避,可以向他人请教,花点时间直到你真正的理解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/48102.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Lamp 小白菜鸟从入门到精通

前言 “LAMP包”的脚本组件中包括了CGIweb接口&#xff0c;它在90年代初期变得流行。这个技术允许网页浏览器的用户在服务器上执行一个程序&#xff0c;并且和接受静态的内容一样接受动态的内容。程序员使用脚本语言来创建这些程序因为它们能很容易有效的操作文本流&#xff0…

2.0.PyTorch神经网络基础

层和块 块&#xff08;block&#xff09;可以描述单个层、由多个层组成的组件或整个模型本身。 使用块进行抽象的一个好处是可以将一些块组合成更大的组件&#xff0c; 这一过程通常是递归的。多个层被组合成块&#xff0c;形成更大的模型&#xff1a; #层 import torch from …

LeetCode做题记录(第二天)169. 多数元素

题目&#xff1a;169. 多数元素 标签&#xff1a;数组 哈希表 分治 计数 排序 题目信息&#xff1a; 思路一&#xff1a; 在题目中出现了计数&#xff0c;那我们就可以直接考虑考虑使用哈希表 unordered_map 即遍历的时候记录每个数的出现次数&#xff0c;当出现次数大于n/…

苍穹外卖跟练项目前端localhost打不开页面启动nginx报错[alert] could not open error log file问题解决

一、安装路径为纯英文 查看自己的安装路径是否为纯英文环境&#xff0c;刚开始下载的资料包是有中文路径的&#xff0c;要将资料包中的nginx-1.20.2文件夹复制一份然后粘贴到一个新建的纯英文的目录&#xff0c;我这里装到的是 D:\Program Files\nginx-1.20.2 二、删掉logs文件…

【AI学习】关于Scaling Law的相关学习

一、苦涩的教训 首先&#xff0c;学习一段重要话语&#xff1a; The biggest lesson that can be read from 70 years of AI research is that general methods that leverage computation are ultimately the most effective, and by a large margin. 从70年的人工智能研究中…

C语言 ——— 浮点数类型 在 内存中 的 存储模式

目录 浮点数存储规则 单\双精度浮点数 存储 S、M、E 的布局 有效数字M 和 指数位E 的特殊规定 浮点数在内存中是否存储的S、M、E 浮点数存储规则 根据国际标准IEEE754&#xff08;电气和电子工程协会&#xff09;规定&#xff1a;任意一个 浮点数F的二进制 都可以表示成…

<数据集>铁轨缺陷检测数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;844张 标注数量(xml文件个数)&#xff1a;844 标注数量(txt文件个数)&#xff1a;844 标注类别数&#xff1a;3 标注类别名称&#xff1a;[Spalling, Squat, Wheel Burn] 序号类别名称图片数框数1Spalling3315522…

【ProtoBuf】通讯录实现(网络版)

Protobuf 还常用于通讯协议、服务端数据交换场景。那么在这个示例中&#xff0c;我们将实现一个网络版本的通讯录&#xff0c;模拟实现客户端与服务端的交互&#xff0c;通过 Protobuf 来实现各端之间的协议序列化。 需求如下&#xff1a; 客户端可以选择对通讯录进行以下操…

达梦数据库 DISQL连接数据库与执行SQL、脚本的方法

DISQL连接数据库与执行SQL、脚本的方法 1.DISQL介绍2.DISQL连接数据库的方法2.1 本地连接2.2 远程连接2.3 CONN连接 3.执行SQL、脚本的方法3.1 通过DISQL登录后在字符界面3.2 启动DISQL时运行脚本3.3 进入DISQL后&#xff0c;通过start命令运行脚本3.4 使用EDIT命令编辑脚本 1.…

【中项】系统集成项目管理工程师-第3章 信息技术服务-3.1内涵与外延与3.2原理与组成

前言&#xff1a;系统集成项目管理工程师专业&#xff0c;现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试&#xff0c;全称为“全国计算机与软件专业技术资格&#xff08;水平&#xff09;考试”&…

OV7670寄存器读出0x00或0xFF

文章目录 问题描述原因分析解决方案 问题描述 OV7670的输出图像异常&#xff0c;怀疑寄存器没有正确配置&#xff0c;在SignalTap中观察到SIO_D在读出阶段一直为高或低 寄存器读出0x00 寄存器读出0xFF 原因分析 在确保电源、时钟和读写时序没有问题的情况下&#xff0c;有…

PCB系统学习(1)--PCB印制电路板

PCB印制电路板 1.1PCB的定义1.2PCB的层叠结构1.2.1PCB单层板1.2.2PCB双层板1.2.3PCB四层板 1.3PCB的通孔&#xff0c;盲孔&#xff0c;埋孔1.4元器件的符号与封装1.5PCB的生产过程 1.1PCB的定义 PCB(PrintedCircuitBoard)&#xff0c;中文即印制电路板&#xff0c;或印刷线路板…

Linux--多线程

今日内容 线程的结束机制&#xff1a; 1.不同与进程没有孤儿线程和僵尸线程。 2.主进程结束&#xff0c;任意生成的次线程都会结束。(因为共享的进程空间被回收了)。 3.次线程的正常结束不会影响主线程的运行。 子线程的回收策略&a…

《0基础》学习Python——第十八讲__爬虫\<1>

一、什么是爬虫 爬虫是一种网络数据抓取的技术。通过编写程序&#xff08;通常使用Python&#xff09;&#xff0c;爬虫可以自动化地访问网页&#xff0c;解析网页内容并提取出所需的数据。爬虫可以用于各种用途&#xff0c;如搜索引擎的索引&#xff0c;数据分析和挖掘&#x…

NVIDIA 完全过渡到开源 GPU 内核模块

目录 支持的 GPU安装程序更改将包管理器与 CUDA 元包配合使用使用 runfile使用安装帮助程序脚本包管理器详细信息apt&#xff1a;基于 Ubuntu 和 Debian 的发行版dnf&#xff1a;Red Hat Enterprise Linux、Fedora、Kylin、Amazon Linux 或 Rocky Linuxzypper&#xff1a;SUSE …

怎么关闭 Windows 安全中心,手动关闭 Windows Defender 教程

Windows 安全中心&#xff08;也称为 Windows Defender Security Center&#xff09;是微软 Windows 操作系统内置的安全管理工具&#xff0c;用于监控和控制病毒防护、防火墙、应用和浏览器保护等安全功能。然而&#xff0c;在某些情况下&#xff0c;用户可能需要关闭 Windows…

【分布式事务】怎么解决分布式场景下数据一致性问题

分布式事务的由来 拿充值订单举个栗子吧&#xff0c;假设&#xff1a;原本订单模块和账户模块是放在一起的&#xff0c;现在需要做服务拆分&#xff0c;拆分成订单服务&#xff0c;账户余额服务。原本收到充值回调后&#xff0c;可以将修改订单状态和扣减余额放在一个mysql事务…

C语言 | Leetcode C语言题解之第236题二叉树的最近公共祖先

题目&#xff1a; 题解&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/typedef struct road_t {struct TreeNode *road_node; // 途径路径struct road_t *p_next; }…

IPD与CBB研发技术管理体系培训

获取下载完整PPT见下图 更多有关华为研发管理/IPD、MBSE、PLM、ERP、MES、数据治理、数字样机等方面免费解决方案、资料获取&#xff0c;请见下图

python—爬虫的初步了解

Python 爬虫&#xff08;Web Scraping&#xff09;是一种自动化从网站上提取数据的技术。Python 由于其简洁的语法、丰富的库和强大的社区支持&#xff0c;成为了实现网络爬虫的首选语言之一。下面是一些Python爬虫的基本概念和步骤&#xff1a; 1. 爬虫的基本概念 请求&…