day017-磁盘管理-实战
文章目录
- 1. 硬盘命名规则
- 2. 添加硬盘
- 2.1 查看硬盘名称
- 3. 硬盘分区
- 3.1 分区命名规则:mbr分区表格式
- 3.2 创建分区:fdisk
- 3.2.1 fdisk -l:查看硬盘及分区信息
- 3.2.2 fdisk /dev/sdc :为该硬盘分区
- 3.2.3 创建扩展分区和逻辑分区
- 3.2.4 保存设置并退出
- 3.3 删除分区
- 3.4 mbr磁盘分区知识
- 4. 分区格式化
- 4.1 创建分区
- 4.2 格式化文件系统:xfs
- 5. 挂载
- 5.1 临时挂载
- 5.2 永久挂载
- 5.2.1 fstab文件
- 5.2.2 写入配置文件
- 6. mbr和gpt
- 6.1 parted命令
- 7. raid
- 7.1 raid 0
- 7.2 raid 1
- 7.3 raid 5
- 7.4 raid 10
- 8. 踩坑记录
- 8.1 开机进入紧急模式
- 9. 思维导图
1. 硬盘命名规则
- sas、sata、scsi接口:/dev/sd……
- 虚拟化(kvm、openstack),云服务器:/dev/vd……
- 固态硬盘(物理服务器):/dev/nvme……
以scsi接口的硬盘为例:
第1块硬盘名:/dev/sda
第2块硬盘名:/dev/sdb
……
2. 添加硬盘
- 点击虚拟机右下角硬盘图标,并点击设置:
- 添加硬盘
- 按默认选择即可,最后点击确定
- 最后重启系统
2.1 查看硬盘名称
- 方法一:直接在/dev目录下查找
- 方法二:lsblk,显示硬盘信息(推荐)
[root@oldboy99-Kylin ~]# ll /dev/sd*
brw-rw---- 1 root disk 8, 0 5月 19 19:12 /dev/sda
brw-rw---- 1 root disk 8, 1 5月 19 19:12 /dev/sda1
brw-rw---- 1 root disk 8, 2 5月 19 19:12 /dev/sda2
brw-rw---- 1 root disk 8, 16 5月 19 19:12 /dev/sdb
brw-rw---- 1 root disk 8, 32 5月 19 19:12 /dev/sdc
[root@oldboy99-Kylin ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part ├─klas-root 253:0 0 65.1G 0 lvm /├─klas-swap 253:1 0 2.1G 0 lvm [SWAP]└─klas-backup 253:2 0 31.8G 0 lvm /backup
sdb 8:16 0 2.9T 0 disk
sdc 8:32 0 1G 0 disk
sr0 11:0 1 4.3G 0 rom
- 刚才添加了1G硬盘,明显是sdc。
3. 硬盘分区
- 硬盘分区相当于将硬盘空间分为多个区域,每个区域存储不同业务的文件。
3.1 分区命名规则:mbr分区表格式
- 分区号:1-4,默认最多有4个主分区
- 最后一个可以为拓展分区
- 拓展分区可以被逻辑分区划分,逻辑分区号从5开始
第1个分区:/dev/sda1
第2个分区:/dev/sda2
……
- 要区分硬盘名字和分区名字。
- 分区名后面有数字
3.2 创建分区:fdisk
- fdisk该命令是非常安全的,对硬盘的设置会默认先保存在内存中,最后要保存配置(w)程序才会对硬盘做出响应。
3.2.1 fdisk -l:查看硬盘及分区信息
[root@oldboy99-Kylin ~]# fdisk -l
Disk /dev/sda:100 GiB,107374182400 字节,209715200 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xfb36b180设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 209715199 207616000 99G 8e Linux LVM
……
3.2.2 fdisk /dev/sdc :为该硬盘分区
[root@oldboy99-Kylin ~]# fdisk /dev/sdc 欢迎使用 fdisk (util-linux 2.35.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。设备不包含可识别的分区表。
创建了一个磁盘标识符为 0xe7e673ce 的新 DOS 磁盘标签。命令(输入 m 获取帮助):p # print,查看当前硬盘信息,大小:1G
Disk /dev/sdc:1 GiB,1073741824 字节,2097152 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xe7e673ce命令(输入 m 获取帮助):n # new,新建分区
分区类型p 主分区 (0 primary, 0 extended, 4 free)e 扩展分区 (逻辑分区容器)
选择 (默认 p): # 回车,默认选择主分区将使用默认回应 p。
分区号 (1-4, 默认 1): # 回车,默认选择分区号1
第一个扇区 (2048-2097151, 默认 2048): # 回车,默认选择扇区开头位置
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-2097151, 默认 2097151): +100M # 输入分区空间大小创建了一个新分区 1,类型为“Linux”,大小为 100 MiB。命令(输入 m 获取帮助):p
Disk /dev/sdc:1 GiB,1073741824 字节,2097152 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xe7e673ce设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdc1 2048 206847 204800 100M 83 Linux
# 分区创建成功
3.2.3 创建扩展分区和逻辑分区
- 跟上面一样,注意逻辑分区号是从5开始的
命令(输入 m 获取帮助):n
分区类型p 主分区 (1 primary, 0 extended, 3 free)e 扩展分区 (逻辑分区容器)
选择 (默认 p):e
分区号 (2-4, 默认 2):
第一个扇区 (206848-2097151, 默认 206848):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (206848-2097151, 默认 2097151): 创建了一个新分区 2,类型为“Extended”,大小为 923 MiB。命令(输入 m 获取帮助):p
Disk /dev/sdc:1 GiB,1073741824 字节,2097152 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xe7e673ce设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdc1 2048 206847 204800 100M 83 Linux
/dev/sdc2 206848 2097151 1890304 923M 5 扩展命令(输入 m 获取帮助):n
所有主分区的空间都在使用中。
添加逻辑分区 5
第一个扇区 (208896-2097151, 默认 208896):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (208896-2097151, 默认 2097151): +300M创建了一个新分区 5,类型为“Linux”,大小为 300 MiB。命令(输入 m 获取帮助):p
Disk /dev/sdc:1 GiB,1073741824 字节,2097152 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xe7e673ce设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdc1 2048 206847 204800 100M 83 Linux
/dev/sdc2 206848 2097151 1890304 923M 5 扩展
/dev/sdc5 208896 823295 614400 300M 83 Linux
3.2.4 保存设置并退出
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
- 查看下系统分区
[root@oldboy99-Kylin ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part ├─klas-root 253:0 0 65.1G 0 lvm /├─klas-swap 253:1 0 2.1G 0 lvm [SWAP]└─klas-backup 253:2 0 31.8G 0 lvm /backup
sdb 8:16 0 2.9T 0 disk
sdc 8:32 0 1G 0 disk
├─sdc1 8:33 0 100M 0 part
├─sdc2 8:34 0 1K 0 part
└─sdc5 8:37 0 300M 0 part
sr0 11:0 1 4.3G 0 rom
*************************************************
[root@oldboy99-Kylin ~]# ll /dev/sdc*
brw-rw---- 1 root disk 8, 32 5月 19 19:56 /dev/sdc
brw-rw---- 1 root disk 8, 33 5月 19 19:56 /dev/sdc1
brw-rw---- 1 root disk 8, 34 5月 19 19:56 /dev/sdc2
brw-rw---- 1 root disk 8, 37 5月 19 19:56 /dev/sdc5
- 很明显的看到刚刚创建的分区sdc1、2、5
3.3 删除分区
# 选择该硬盘进行分区配置
[root@oldboy99-Kylin ~]# fdisk /dev/sdc欢迎使用 fdisk (util-linux 2.35.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。命令(输入 m 获取帮助):p # 查看当前分区情况
Disk /dev/sdc:1 GiB,1073741824 字节,2097152 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xe7e673ce设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdc1 2048 206847 204800 100M 83 Linux
/dev/sdc2 206848 2097151 1890304 923M 5 扩展
/dev/sdc5 208896 823295 614400 300M 83 Linux命令(输入 m 获取帮助):d # 有三个分区,默认先删除逻辑分区
分区号 (1,2,5, 默认 5): 分区 5 已删除。命令(输入 m 获取帮助):d
分区号 (1,2, 默认 2): 分区 2 已删除。命令(输入 m 获取帮助):d
已选择分区 1
分区 1 已删除。命令(输入 m 获取帮助):p # 查看下没有分区了
Disk /dev/sdc:1 GiB,1073741824 字节,2097152 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xe7e673ce命令(输入 m 获取帮助):w # 记得保存当前配置
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
# 查看下硬盘分区情况
[root@oldboy99-Kylin ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part ├─klas-root 253:0 0 65.1G 0 lvm /├─klas-swap 253:1 0 2.1G 0 lvm [SWAP]└─klas-backup 253:2 0 31.8G 0 lvm /backup
sdb 8:16 0 2.9T 0 disk
sdc 8:32 0 1G 0 disk
sr0 11:0 1 4.3G 0 rom
3.4 mbr磁盘分区知识
- 主分区,最多4个;
- 扩展分区无法直接使用,需要在扩展分区中创建逻辑分区;
- 磁盘分区存放在磁盘的开头:0头0道1扇区(机械硬盘)
- 1扇区大小:512字节
4. 分区格式化
- 格式化,为分区创建文件系统
- 不同的文件系统存放的文件格式不同
- 红帽系列:xfs
- Ubuntu/Debian:ext4
- 格式化命令:mkfs(make filesystem)
- 生产环境中,一个硬盘创建一个分区使用即可
4.1 创建分区
[root@oldboy99-Kylin ~]# fdisk /dev/sdc欢迎使用 fdisk (util-linux 2.35.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。命令(输入 m 获取帮助):p
Disk /dev/sdc:1 GiB,1073741824 字节,2097152 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xe7e673ce命令(输入 m 获取帮助):n
分区类型p 主分区 (0 primary, 0 extended, 4 free)e 扩展分区 (逻辑分区容器)
选择 (默认 p):将使用默认回应 p。
分区号 (1-4, 默认 1):
第一个扇区 (2048-2097151, 默认 2048):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-2097151, 默认 2097151): 创建了一个新分区 1,类型为“Linux”,大小为 1023 MiB。命令(输入 m 获取帮助):p
Disk /dev/sdc:1 GiB,1073741824 字节,2097152 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xe7e673ce设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdc1 2048 2097151 2095104 1023M 83 Linux命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。[root@oldboy99-Kylin ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part ├─klas-root 253:0 0 65.1G 0 lvm /├─klas-swap 253:1 0 2.1G 0 lvm [SWAP]└─klas-backup 253:2 0 31.8G 0 lvm /backup
sdb 8:16 0 2.9T 0 disk
sdc 8:32 0 1G 0 disk
└─sdc1 8:33 0 1023M 0 part
sr0 11:0 1 4.3G 0 rom
4.2 格式化文件系统:xfs
- blkid:查看分区的元数据,uuid和文件系统类型、block大小
# 注意分区名字不要写错
[root@oldboy99-Kylin ~]# mkfs.xfs /dev/sdc1
meta-data=/dev/sdc1 isize=512 agcount=4, agsize=65472 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=1, sparse=1, rmapbt=0= reflink=1
data = bsize=4096 blocks=261888, imaxpct=25= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1566, version=2= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
# 查看该分区的信息
[root@oldboy99-Kylin ~]# blkid |grep '/dev/sdc1'
/dev/sdc1: UUID="b503e9fc-21f4-4ab3-9c2f-72508091eb2f" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="e7e673ce-01"
5. 挂载
- 要想使用分区,必须挂载到某个空目录下
5.1 临时挂载
- mount:挂载命令
- df -hT:查看文件系统以及挂载点
[root@oldboy99-Kylin ~]# mount /dev/sdc1 /mnt/
[root@oldboy99-Kylin ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 453M 0 453M 0% /dev
tmpfs tmpfs 475M 0 475M 0% /dev/shm
tmpfs tmpfs 475M 6.9M 468M 2% /run
tmpfs tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/mapper/klas-root xfs 66G 8.8G 57G 14% /
tmpfs tmpfs 475M 0 475M 0% /tmp
/dev/mapper/klas-backup xfs 32G 260M 32G 1% /backup
/dev/sda1 xfs 1014M 202M 813M 20% /boot
tmpfs tmpfs 95M 0 95M 0% /run/user/0
/dev/sdc1 xfs 1017M 40M 978M 4% /mnt
- 临时挂载在重启系统后失效
- umount:卸载文件系统
- -lf:强制卸载
[root@oldboy99-Kylin ~]# umount /mnt
[root@oldboy99-Kylin ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 453M 0 453M 0% /dev
tmpfs tmpfs 475M 0 475M 0% /dev/shm
tmpfs tmpfs 475M 6.9M 468M 2% /run
tmpfs tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/mapper/klas-root xfs 66G 8.8G 57G 14% /
tmpfs tmpfs 475M 0 475M 0% /tmp
/dev/mapper/klas-backup xfs 32G 260M 32G 1% /backup
/dev/sda1 xfs 1014M 202M 813M 20% /boot
tmpfs tmpfs 95M 0 95M 0% /run/user/0
5.2 永久挂载
- 方法一:/etc/fstab,开机自动挂载的配置文件,推荐使用。
- 方法二:/etc/rc.local,开机自动运行指定命令的配置文件,将挂载命令写入该文件即可,但是不推荐。
5.2.1 fstab文件
- 第一列:文件系统名称/文件系统UUID
- 第二列:挂载的目录
- 第三列:文件系统类型
- 第四列:挂载选项,默认就行(defaults),注意最后有个s
- 第五列:是否进行备份(dump指令),默认关闭
- 第六列:是否进行开机检查(硬盘),默认不检查
5.2.2 写入配置文件
/dev/sdc1 /app/data xfs defaults 0 0
- 重启检查下
[root@oldboy99-Kylin ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
……
/dev/sdc1 xfs 1017M 40M 978M 4% /app/data
……
6. mbr和gpt
磁盘分区表 | 相同点 | 不同点 | 命令 |
---|---|---|---|
mbr(Master Boot Record)主引导记录 | 引导系统启动,存放磁盘分区信息 | 主分区、拓展分区、逻辑分区; 支持硬盘空间小于2Tb | fdisk/parted |
gpt(GUID Partition Table)GUID分区表 | 引导系统启动,存放磁盘分区信息 | 主分区无限个; 支持2Tb以上的硬盘 | gdisk/parted |
- gdisk和fdisk的使用方式基本相同
6.1 parted命令
- 该命令非常危险,会对硬盘分区直接操作;
- 一定要注意此时修改的硬盘或分区是否正确
# 对大容量硬盘分区
[root@oldboy99-Kylin ~]# parted /dev/sdb
GNU Parted 3.3
使用 /dev/sdb
欢迎使用 GNU Parted!输入 'help' 来查看命令列表。
(parted) mktable gpt # 创建分区表
警告: 现有 /dev/sdb 上的磁盘卷标将被销毁,而所有在这个磁盘上的数据将会丢失。您要继续吗?
是/Yes/否/No? y
(parted) p # 查看分区情况
型号:VMware, VMware Virtual S (scsi)
磁盘 /dev/sdb:3221GB
扇区大小 (逻辑/物理):512B/512B
分区表:gpt
磁盘标志:编号 起始点 结束点 大小 文件系统 名称 标志(parted) mkpart primary 0 100g # 创建主分区,100g的空间
警告: The resulting partition is not properly aligned for best performance: 34s % 2048s != 0s
忽略/Ignore/放弃/Cancel? i # 解释:生成的分区未正确对齐以获得最佳性能
(parted) p
型号:VMware, VMware Virtual S (scsi)
磁盘 /dev/sdb:3221GB
扇区大小 (逻辑/物理):512B/512B
分区表:gpt
磁盘标志:编号 起始点 结束点 大小 文件系统 名称 标志1 17.4kB 100GB 100GB primary(parted) rm 1 # 删除该分区,指定分区编号
(parted) p
型号:VMware, VMware Virtual S (scsi)
磁盘 /dev/sdb:3221GB
扇区大小 (逻辑/物理):512B/512B
分区表:gpt
磁盘标志:编号 起始点 结束点 大小 文件系统 名称 标志(parted) q
信息: 你可能需要 /etc/fstab。
7. raid
- 独立磁盘冗余阵列,为物理服务器管理硬盘
- 目标/特点:
- 获取更多的容量、获取更多的冗余(更高的安全性)、获取更高的性能
- raid管理这些硬盘的方式:raid级别
raid级别 | 最少需要的硬盘数量 | 安全冗余 | 可用容量 | 性能 | 使用场景 | 举例 |
---|---|---|---|---|---|---|
raid 0 | 1/2 | 几乎没有 | 所有硬盘容量总和 | 读写最快 | 不要求安全,只要求速度 | 数据库从库、 存储从库、 web服务器 |
raid 1 | 2 | 100% | 所有硬盘容量总和的一半 | 写入速度慢,读取较快 | 只追求安全性,不要求读取速度 | 系统盘、监控服务器 |
raid 5 | 3 | 最多允许1块硬盘损坏 | 损失一块盘的容量 | 写入性能不好,读取速度较快 | 对于速度、安全性要求不高 | 普遍数据库、 存储访问量不高的存储服务 |
raid 10 | 4 | 可以损坏一半 | 所有硬盘容量总和的一半 | 读写很快 | 对于读写、安全性要求都很高 | 高并发或高访问量的数据库主库 |
7.1 raid 0
- RAID 0是一种非常简单的的方式,它将多块磁盘组合在一起形成一个大容量的存储。
7.2 raid 1
- RAID1是磁盘阵列中单位成本最高的一种方式。因为它的原理是在往磁盘写数据的时候,将同一份数据无差别的写两份到磁盘,分别写到工作磁盘和镜像磁盘,那么它的实际空间使用率只有50%了,两块磁盘当做一块用,这是一种比较昂贵的方案。
7.3 raid 5
- RAID5是一种将存储性能、数据安全、存储成本兼顾的一种方案。
- RAID5模式把校验码信息分布到各个磁盘上,一旦某一块磁盘损坏了,就可以用剩下的数据和对应的奇偶校验码信息去恢复损坏的数据。
7.4 raid 10
- RAID10兼备了RAID1和RAID0的优点。首先基于RAID1模式将磁盘分为2份,当要写入数据的时候,将所有的数据在两份磁盘上同时写入,相当于写了双份数据,起到了数据保障的作用。且在每一份磁盘上又会基于RAID0技术将数据分为N份并发的读写,这样也保障了数据的效率。
8. 踩坑记录
8.1 开机进入紧急模式
- 原因:编写/etc/fstab文件有误
- 输入root密码进入系统,修改文件即可。
9. 思维导图
【金山文档】 思维导图 https://www.kdocs.cn/l/co3I7PtpTYQX
相关文章:
day017-磁盘管理-实战
文章目录 1. 硬盘命名规则2. 添加硬盘2.1 查看硬盘名称 3. 硬盘分区3.1 分区命名规则:mbr分区表格式3.2 创建分区:fdisk3.2.1 fdisk -l:查看硬盘及分区信息3.2.2 fdisk /dev/sdc :为该硬盘分区3.2.3 创建扩展分区和逻辑分区3.2.4 保存设置并退…...
Win10 安装单机版ES(elasticsearch),整合IK分词器和安装Kibana
一. 先查看本机windows是否安装了ES(elasticsearch),检查方法如下: 检查进程 按 Ctrl Shift Esc 组合键打开 “任务管理器”。在 “进程” 选项卡中,查看是否有 elasticsearch 相关进程。如果有,说明系统安装了 ES。 检查端口…...
STM32 控制 OLED 全攻略(二):实现字符和汉字的显示
目录 一 前言 二 OLED介绍 (一)SSD1306 (二)OLED屏幕 三 显示原理结合代码解释 1 指令---0x00 2 数据---0x40 3 初始化oled函数 4 codetab.h 四 显示字符串的原理 🧾 ASCII 编码范围: ✅ OLED_S…...
c#将json字符串转换为对象数组
在C#中,将JSON字符串转换为对象数组是一个常见的需求,特别是在处理来自Web API的响应或需要反序列化本地文件内容时。这可以通过使用Newtonsoft.Json(也称为Json.NET)库或.NET Core内置的System.Text.Json来完成。以下是如何使用这…...
Cryosparc里头restack的妙用
在Cryosparc里头经常需要迁移job或者将particle打包成relion可以识别的模式,总是会遇到一个问题,我们需要的颗粒明明很少,但总是保存出一大堆东西来。原因就是,他会把最开初的particle都给你算进来,而不是某个作业对应…...
.bat文档如何运行Python程序
.bat文档如何运行Python程序 在Windows操作系统中,你可以通过几种方式来运行Python程序,即使是通过.bat批处理文件。.bat文件是一种批处理脚本,它允许你执行一系列命令。以下是一些步骤和示例,说明如何从.bat文件运行Python程序。…...
力扣HOT100之二叉树:230. 二叉搜索树中第 K 小的元素
这道题直接用最笨的办法来做的,用递归来做,我们定义一个全局变量vector<int> element,然后使用中序遍历,每当碰到一个非空节点就将其加入到向量中,这样依赖当向量中的元素小于k时,就返回0,…...
【Nextcloud】使用 LNMP 架构搭建私有云存储:Nextcloud 实战指南
目录 一、环境准备与基础配置 1. 系统环境要求 2. 初始化系统配置 二、搭建 LNMP 基础架构 1. 一键安装 LNMP 组件 2. 启动数据库服务 三、部署 Nextcloud 存储服务 1. 上传并解压安装包 2. 设置目录权限(测试环境配置) 3. 配置 MariaDB 数据库…...
已知6、7、8月月平均气温和标准差,求夏季季平均温度与标准差
由下面定理,得出平方和的公式:(即每天的温度平方和) 这样就可以推出季平均的算法: 举例:在Excel用公式算,不要手算: 因此季平均:(B2*C2B3*C3B4*C4)/SUM(B2:B4) 季标准差…...
【cursor指南】cursor免费续杯pro会员试用
背景 心血来潮(其实是被逼的),开始需要cursor里面的agent对话。cursor用着用着就会出现点数耗尽、试用到期等问题,于是自行开始找免费的cursor会员续用方法。 Part01:参考链接鸣谢 1. Cursor 全攻略:注册、使用到无限续杯&…...
Visual Studio解决方案构建三剑客:生成/重新生成/清理完全指南(实战经验总结)
文章目录 当你在VS里右键解决方案时...一、先看实战场景(老板发飙警告)二、三大命令解剖课(重点标记版)2.1 生成解决方案(F7)2.2 重新生成解决方案(CtrlAltF7)2.3 清理解决方案&…...
《JVM如何判断一个对象可以被回收?图文详解GC Root算法》
大家好呀!我是你们的老朋友Java技术博主👋 今天咱们来聊聊Java虚拟机(JVM)中一个超级重要的话题——垃圾回收机制(Garbage Collection)和GC Root可达性分析!这可是Java程序员必须掌握的核心知识点哦!😎 🌟…...
常用算法/机理模型演示平台搭建(一)
算法/机理模型演示平台搭建 一、算法列表(app/algorithms)二、行业机理模型 (app/models)三、如何使用本项目旨在为初学者提供 35种 常用算法和 9种 行业机理模型的简单Python实现或概念说明。每个算法都有其独特的应用场景,从数据预测、质量检测、过程控制到结构分析和优化问…...
一文详解红黑树
一文详解红黑树 前言一、基本概念与特性1.1 红黑树的定义1.2 红黑树的特性 二、红黑树的节点结构与表示三、红黑树的基本操作3.1 插入操作3.2 删除操作 四、红黑树的应用场景4.1 编程语言的集合类4.2 数据库索引4.3 Linux 内核进程调度 总结 前言 在数据结构的领域中ÿ…...
Windows 安装显卡驱动
1.第一步:打开Nvidia 官网驱动下载页面 2.第二步:选择相关信息, 玩游戏选择,GeForce Game Ready ,创意设计、摄影直播 选择 NVIDIA Studio 驱动程序 (NVIDIA Studio Driver - WHQL.) 2.第三步࿱…...
【C语言】易错题 经典题型
出错原因:之前运行起来的可执行程序没有关闭 关闭即可 平均数(average) 输入3个整数,输出它们的平均值,保留3位小数。 #include <stdio.h> int main() {int a, b, c;scanf("%d %d %d", &a, &…...
C++类与对象--5 运算符重载
对已有的运算符进行重新定义,赋予不同的功能,以适应不同的数据类型 5.1 加号运算符 实现两个自定义数据类型的加运算 (1)通过成员函数实现“”重载 class Number { public:Number(int a, int b):m_A(a),m_B(b){}Number(){}Number operator(Number &a…...
接口排查不能靠猜:实战中如何用抓包工具精准定位问题(含 Charles 使用示例)
几乎每个写代码的开发者都经历过这样的时刻:接口突然返回空、请求超时、前端数据没更新……你试过重启服务、翻查日志、改代码打印,最后还是无解。 我想说,其实很多问题的答案都藏在“网络请求”里,只是你没有去看。 这篇文章&a…...
【占融数科-注册/登录安全分析报告】
前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…...
4.7 时间模块
时间模块: * 1. time:操作时间本身 2.datetime:主要用于设置某一时间 3.calendar:主要用于时间份量计算 import time # 1. actimr:把一个表示时间的元组转换为字符串。要是不给出参数则返回当前本地时间。 print(time.asctime())…...
SHIMADZU岛津 R300RC300 Operation Manual
SHIMADZU岛津 R300RC300 Operation Manual...
(C语言篇)处理字符串的四个基础函数
strlen、strcpy、strcat、strcmp使用以及注意事项 在C语言中,strlen、strcpy、strcat、strcmp是处理字符串的四个基础函数,都在<string.h>头文件中声明。下面为你详细介绍它们的功能、用法和注意事项。 1. strlen - 计算字符串长度 函数原型&am…...
mysql的安装方式
1.yum/apt安装 yum安装: 先搭建yum仓库,可以在清华源内找:mysql | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror vim /etc/yum.repos.d/mysql.repo[mysql-connectors-community] nameMySQL Connectors Communit…...
嵌入式(C语言篇)Day11
嵌入式Day11 一、动态内存分配核心函数 (一)函数列表 函数名功能头文件返回值malloc分配连续的size字节堆内存stdlib.h成功返回首地址(void*),失败返回NULLcalloc分配num个元素size字节/元素的堆内存,自…...
Java集合框架解析:从基础到底层源码
Java集合框架解析:从基础到底层源码 一、集合体系 1.1 两大核心接口深度解析 Collection 单列集合 List 系列 ArrayList:动态数组实现,初始容量10,扩容策略为 原容量的1.5倍// JDK17 扩容源码片段 int newCapacity oldCapacity…...
C语言实现android/linux按键模拟
C语言实现 input事件模拟 #include <stdio.h> #include <fcntl.h> #include <unistd.h> #include <linux/input.h>int main() {int fd open("/dev/input/event0", O_RDWR);if (fd < 0) {perror("Failed to open device");ret…...
VisionPro:轴承错位标识
找出轴承缺陷并标记:效果 1.打开导入图片 2.添加CogToolblock:方便后续写代码 3.对零件进行模板匹配 4.对图片进行预处理(重点) 5.添加找圆工具和展开工具 根据下图将线链接 6.添加模板匹配工具并运行 7.训练模板 好的全找出来 8.代码编写 红色框为添加的代码(下面有完整代码) …...
专题五:floodfill算法(扫雷游戏精讲)
以leetcode529题 题目解析: M表示:未挖出的地雷 E表示:未挖出的空白方块 什么叫未挖出,就是你没玩的时候,棋盘是什么样的,就是你站在上帝视角看待棋盘 B:表示挖出来是空白的,如…...
MySQL企业版免费开启,强先体验
近期Oracle突然宣布,MySQL企业版面向开发者免费开放下载,这一消息瞬间引爆DBA圈。作为数据库领域的“顶配车型”,企业版长期因高昂授权费让中小团队望而却步,如今免费开放无异于“劳斯莱斯开进菜市场”。 本文将深度拆解企业版的…...
React Contxt详解
React Contxt详解 React 的 Context API 是用于跨组件层级传递数据的解决方案,尤其适合解决「prop drilling」(多层组件手动传递 props)的问题。以下是关于 Context 的详细解析: 文章目录 React Contxt详解一、Context 核心概念二…...
前端工程的相关管理 git、branch、build
环境配置 标准环境打包 测试版:npm run build-test 预生产:npm run build-preview 正式版:npm run build 建议本地建里一个 .env.development.local 方便和后端联调时修改配置相关信息。 和 src 同级有一下区分环境的文件: .env.d…...
鸿蒙 Location Kit(位置服务)
移动终端设备已经深入人们日常生活的方方面面,如查看所在城市的天气、新闻轶事、出行打车、旅行导航、运动记录。这些习以为常的活动,都离不开定位用户终端设备的位置。 Location Kit 使用多种定位技术提供服务,可以准确地确定设备在室外/室…...
人工智能、机器学习与深度学习:概念解析与内在联系
人工智能、机器学习与深度学习:概念解析与内在联系 一、人工智能(Artificial Intelligence, AI) (一)人工智能的定义 人工智能的定义随着技术发展不断演变。从广义上讲,人工智能是指通过计算机技术实现的…...
【Linux学习】Ubuntu对用户进行管理
目录 写在前面 【Linux学习】Ubuntu对用户进行管理一、为什么需要用户管理?二、用户管理基础操作(一)用户管理1. 用户管理命令表格2. 关键操作场景说明场景一:创建用户并配置权限场景二:修改用户属性场景三:…...
JVM 垃圾回收器
以下是对主流 JVM 垃圾回收器的详细解析,涵盖 一、Serial GC(单线程串行回收器) 二、Parallel GC(吞吐量优先回收器) 三、CMS(Concurrent Mark Sweep,低延迟回收器) 四、G1&…...
JUC入门(三)
7、Callable 1、可以有返回值 2、可以抛出异常 3、方法不同 run()/call() 代码测试 老版本的应用 package com.yw.callable;public class Old {public static void main(String[] args) {new Thread(new MyThread()).start();} }class MyThread implements Runnable{Overri…...
RV1126多线程获取SMARTP的GOP模式数据和普通GOP模式数据
通过代码的方式同时获取SMARTP模式的VENC码流数据和普通GOP模式的VENC码流数据,并进行对比画质。 一.RV1126 VI采集摄像头数据并同时编码SMARTP模式和普通GOP模式的编码码流流程 RV1126利用多线程同时获取普通GOP的VENC码流数据和SMARTP的码流数据一般如上图&#…...
MySQL事务、视图、索引、备份和恢复
1. 事务 如果不使用事务,那么如果出现了张三账户汇款成功-500元,但是李四那边的服务器出现了故障没有接收到500元,那么就会出现张三账户里有500元但是李四那边的账户还是1元的情况,转账的500元被吞了。 创建事务 2. 视图 创建视图…...
yolov8训练模型优化模型【误检】
针对 YOLOv8 模型在电动车人脸检测中出现误检行人人脸的问题,结合最新研究与实践经验,以下提供多维度优化方案及具体实施步骤: 一、数据集优化 数据清洗与标注增强 剔除干扰样本:确保训练集中所有标注仅包含骑行状态的人脸&#x…...
初识MySQL · 索引
目录 前言: 重温磁盘 认识索引 为什么这么做,怎么做 重谈page 聚簇索引VS非聚簇索引 回表查询 索引分类 前言: 前文我们主要是介绍了MySQL的一些基本操作,增删查改一类的操作都介绍了,并且因为大多数情况下&am…...
Kubernetes in action-配置和应用升级
Kubernetes的配置和应用升级 1、配置1.1 configMap1.2 secret1.3 Downward API1.4 Kubernetes API 2、服务升级2.1 升级方式2.1.1 先删除所有的旧版pod,使用新版本pod替换2.1.2 先创建新版pod,再删除旧版本pod2.1.3 滚动优化 2.2 使用deployment声明式升…...
十三、面向对象底层逻辑-Dubbo序列化Serialization接口
一、引言:分布式通信的数据桥梁 在分布式服务调用中,参数的跨网络传输需要将对象转化为二进制流,这一过程直接影响系统的性能、兼容性与安全性。Dubbo通过Serialization接口构建了可扩展的序列化体系,支持多种序列化协议的无缝切…...
5.19 打卡
DAY 30 模块和库的导入 知识点回顾: 导入官方库的三种手段导入自定义库/模块的方式导入库/模块的核心逻辑:找到根目录(python解释器的目录和终端的目录不一致) 作业:自己新建几个不同路径文件尝试下如何导入...
MathType公式如何按照(1)(2)…编号
在word中使用mathtype插入公式,发现插入的公式编号默认为(1.1),(1.2)…,但论文中常用的公式编号是(1)(2)…,分享一下如何实现(1.1)→(1)。 ①word菜单找到“MathType”,点击“插入编号”-“格式化”。 ②取消勾选“章编号”和“节…...
解决即使安装了pageoffice网页还是无法跳转、点击按钮没有反应等问题
出现的现象: 安装了pageoffice网页还是无法跳转、点击按钮没有反应 网页提示的错误: 点击按钮之前右键检查网页发现的错误: 点击无效按钮之后右键检查出现的错误: 原因: 鉴于安全性的考虑,新版浏览器不支…...
正点原子STM32新建工程
MDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。 MDK5 由两个部分组成: MDK Core 和 Software Packs。 MDK Core 又分成四个部分: uVision IDE with Editor(编辑器), ARMC/C Compiler(编译…...
计算机网络 第三章:运输层(一)
运输层位于应用层和网络层之间,是分层的网络体系结构的重要部分。该层为运行在不同主机上的应用进程提供直接的通信服务。通常特别关注因特网协议,即 TCP 和 UDP 运输层协议。 讨论运输层和网络层的关析,为研究运输层第一个关键功能ÿ…...
机器学习(14)——模型调参
文章目录 一、动态调参方法论1. 调参策略选择2. 千万数据优化原则 二、模型调参策略对比1. LightGBM调参路线2. XGBoost调参路线3. 随机森林调参策略 三、代码实现示例通用数据准备(适用于所有模型)1. LightGBM调参示例2. XGBoost调参示例3. 随机森林调参…...
基于PetaLinux的Zynq PS应用自启动全攻略
一、嵌入式Linux启动管理的艺术 在工业机器人、智能摄像头、边缘计算网关等场景中,开机自启动管理是系统可靠性的第一道关卡。本文将深入讲解Zynq PS端在PetaLinux环境下实现: Systemd服务深度定制启动时序精准控制启动速度优化技巧动态服务管理创新方案二、环境搭建与工程配…...
贪心算法:多处最优服务次序、删数问题
多处最优服务次序问题 问题描述:设有n个顾客同时等待一项服务。顾客i需要的服务时间为ti(1≤i≤n),共有s处可以提供此项服务。应如何安排n个顾客的服务次序,才能使平均等待时间达到最小?平均等待时间是n个顾客等待服务时间的总和除以n。 算法设计:对于给定的n个顾…...