服务器重装系统与磁盘操作

诱因:服务器原来装的EXSI,现在要重装一个ubuntu server,出现了下面一些问题,在此记录一下。

目录

  • 1、过程中出现的问题(2024.5.26)
    • 1.1 问题1:如何磨掉原来的ESXI?
    • 1.2 问题2:为什么ubuntu安装在14TB的磁盘中,reboot后无法正常进入系统?
      • 补RAID知识
    • 1.3 问题3:安装ubuntu时,558G和14T的硬盘,操作系统应该选择安装在哪个硬盘?
    • 1.4 问题4:如何在安装ubuntu的时候,就充分利用好558G的磁盘空间?而不是进入系统之后,再进行扩容。
    • ==1.5 问题5:进入ubuntu后,如何用上14TB的硬盘空间?==
    • ==1.6 问题6:如果`/`是100G,那么如何进入ubuntu后,扩充成558G呢?【未实践】==
    • 1.7 问题7:直接挂载分区 和 挂载逻辑卷 有什么区别呢?
    • 1.8 问题8:为什么ubuntu,会出现`/dev/mapper/ubuntu--vg--1-ubuntu--lv`但是没有`/dev/sda3/ubuntu--vg--1-ubuntu--lv`呢?
    • 1.9 问题9:为什么是`/dev/mapper/`呢?
    • 1.10 常用磁盘命令总结

1、过程中出现的问题(2024.5.26)

1.1 问题1:如何磨掉原来的ESXI?

服务器的磁盘是通过raid组装过的,组装信息如下:

在这里插入图片描述

以前的ESXI是安装在第一个558G的虚拟驱动里面的。

所以磨掉ESXI的方法:

1)重装操作系统的时候,安装在558G的磁盘中(原来的ESXI就装在这个磁盘里面得)。

在这里插入图片描述

2)重组raid, 初始化时,选择Initialize。之后再安装操作系统

在这里插入图片描述

1.2 问题2:为什么ubuntu安装在14TB的磁盘中,reboot后无法正常进入系统?

可能是因为组raid时,Drive Group:0 (558GB,RAID 1类型)在 Drive Group:1(14TB,RAID 5类型)上面,如果要引导启动的时候,那么会优先从Drive Group:0从引导。

也可能是因为Drive Group:0 使用的是非SATA,而Drive Group:1全部使用的是SATA类型的磁盘

补RAID知识

重要参考:RAID磁盘阵列是什么意思?RAID 0、1、5都有什么不同?

RAID的出现是为了保证安全性。RAID也可以当作是把单个的磁盘合并在一起进行使用。

RAID 0:把文件拆开,然后同时、分别存到三块硬盘上。RAID 0是性能最好的,但因为是把文件拆分存储,一旦一个硬盘出问题,整个文件就不能用了。【性能最高,最不安全】

RAID 1:相对于RAID 0,提升了安全性。往第1块磁盘写数据,还会复制一份到第二块硬盘。所以虽然安全性最高,但是容量只会是两个相同大小磁盘组起来后的一半。(至少需要2块硬盘)【最安全,但性能最低】

RAID 5:兼顾性能和安全性。如果某一个块硬盘损坏了,那么可以通过其他硬盘的检验信息来恢复。所以RAID 5又叫做分布式校验盘。RAID 5最多允许坏一块硬盘,坏2块硬盘就不行了。(至少需要3块硬盘)

RAID 10:是RAID 1 和 RAID 0的组合,至少需要4块硬盘。先组成2个RAID 1,再组成2个RAID 0。

1.3 问题3:安装ubuntu时,558G和14T的硬盘,操作系统应该选择安装在哪个硬盘?

我们先选择把ubuntu安装在14TB的硬盘里,发生的效果是:reboot后,无法正常开机。原因猜测见1.2

后来我们选择把ubuntu安装在558G的硬盘中,这样就可以正常进入系统了。

1.4 问题4:如何在安装ubuntu的时候,就充分利用好558G的磁盘空间?而不是进入系统之后,再进行扩容。

关键在于这个界面:

在这里插入图片描述

如果按照这个默认配置,那么分配给根(/)的磁盘大小只有100GB。我们需要把这个558G的硬盘空间充分利用,接下来就是操作步骤:

Step1:删掉[/ 100G new ext4 new LVM logical volume](通过Unmount

Step2:然后删掉ubuntu-lv new to be formatted as ext4, not mounted(LVM logical volume ubuntu-lv)

Step3:然后在free space中Create Logical Volume(Size 填满,文件格式ext4,挂载在/

最后可以看到[/ 556.402G new ext4 new LVM logical volume]

1.5 问题5:进入ubuntu后,如何用上14TB的硬盘空间?

重要参考:linux下使用fdisk进行磁盘分区详解

Step1:设置磁盘分区(把整个磁盘放在一个分区)

  • lsblk命令查看现有磁盘分区(通过fdisk -l命令也可以查看,但lsblk命令更直观)
  • fdisk /dev/sdb 对某个硬盘进行分区(分区后,会出现sdb1, sdb2等等)
    • m #查看帮助
    • p #打印分区表
    • d #删除已有分区(之前通过lsblk命令查看到的分区sdb1
    • n #新建分区
      • 上面参考博客的改动是:/dev/sdb1为主分区(p),/dev/sdb2为扩展分区(e),扩展分区又包含两个逻辑分区(l)/dev/sdb5和/dev/sdb6
      • First sector一般都是默认回车;Last sector如果回车默认,那么会默认分配剩余空间。如果不用完,那么可以写+500M / + 24G
    • w #写入磁盘分区表

Step2:格式化分区(一般linux文件格式是ext4)

  • mkfs.ext4 /dev/sdb1 #把新建的分区格式化为ext4格式

Step3:把分区挂载到某个目录

  • mkdir /sdb1 #创建一个目录
  • mount /dev/sdb1 /sdb1 # 把分区挂载到某个目录

Step4:设置开机自动挂载分区

  • 把挂载信息写入/etc/fstab文件中
    • /dev/sdb1 /sdb ext4 defaults,noatime 0 0
  • reboot后,通过df -hT命令查看挂载成功与否。df -hT查看的,全部都是挂载成功的分区/逻辑卷信息,而lsblk,命令可以查看全部的硬盘空间(包括没有设置分区的等等)。

方法2:把分区(part)变为物理卷(PV)再变为卷组(VG)组再变为逻辑卷(LV),再格式化文件系统,最后挂载使用

1.6 问题6:如果/是100G,那么如何进入ubuntu后,扩充成558G呢?【未实践】

难点:目前的根目录已经有数据了,如果扩容的话, 那么可能会涉及到数据搬移?

回答:通过逻辑卷操作

重要参考

1、Linux磁盘分区详解(新建分区,现有分区扩容,分区减容)

  • 这篇参考文章的第三节“三、服务器新建磁盘空间”,是新加入一块硬盘后,如何把硬盘的空间通过卷的形式用起来。(最终还是将逻辑卷挂载到某个目录

    • 新建立的卷组的空间,可以分配给现有逻辑卷,不一定要在新建立的卷组上面新建逻辑卷。
  • 这篇参考文章的第五节“五、分区扩容”,就是给/u01目录对应的逻辑卷/dev/mapper/vgdata-lvdata02扩容【与问题6相关】

    • /dev/mapper:和本文下面的问题8有关。
    • /dev/mapper/vgdata-lvdata02是卷组vgdata下面的逻辑卷lvdata02。最终挂载目录的时候,目录和逻辑卷对应。
  • fdisk -l查看磁盘下面的分区

  • 2024.5.26用到的操作就是到分区就结束了,这篇文章还提出了 物理卷-PV逻辑卷LVM等术语

  • img

    • 物理分区(PP)/dev/sdb1/dev/sdb2 -> 物理卷(PV):/dev/sdb1/dev/sdb2

      [root@CentOS7-0003 /]$ pvcreate /dev/sdb1Physical volume "/dev/sdb1" successfully created.
      [root@CentOS7-0003 /]$ pvcreate /dev/sdb2Physical volume "/dev/sdb2" successfully created.
      [root@CentOS7-0003 /]$ pvs #pvs、pvdisplay、pvscan 这三个命令都可以查看系统中有哪些物理卷PV          PV         VG                  Fmt  Attr PSize   PFree /dev/sda2  centos_centos7-0003 lvm2 a--  <19.00g     0 /dev/sdb1                      lvm2 ---    5.00g  5.00g/dev/sdb2                      lvm2 ---   <5.00g <5.00g # 感觉文件格式是lvm2就是物理卷,如果直接使用的话,那么就是ext4
      

      查看物理卷:pvs、pvdisplay、pvscan

    • 物理卷(PV) /dev/sdb1/dev/sdb2 -> 卷组(VG):vgdata

      [root@CentOS7-0003 /]$ vgcreate vgdata /dev/sdb1   #创建卷组vgdata,并将/dev/sdb1添加到卷组Volume group "vgdata" successfully created[root@CentOS7-0003 /]$ vgextend vgdata /dev/sdb2   #将/dev/sdb2添加到vgdata卷组Volume group "vgdata" successfully extended
      [root@CentOS7-0003 /]$ vgs                         #查看卷组信息VG                  #PV #LV #SN Attr   VSize   VFreecentos_centos7-0003   1   2   0 wz--n- <19.00g    0 vgdata                2   0   0 wz--n-   9.99g 9.99g # 2个PV(物理卷) 0个LV(逻辑卷)
      

      查看卷组:vgs

    • 卷组(VG) vgdata -> 逻辑卷(LV) lvdata01lvdata02

      [root@CentOS7-0003 /]$  lvcreate -L 4G -n lvdata01 vgdata #将vgdata上4G分配给新建的逻辑卷lvdata01Logical volume "lvdata01" created.[root@CentOS7-0003 /]$ lvcreate  -l 100%FREE -n lvdata02 vgdata #将vgdata上剩余空间分配给新建的逻辑卷lvdata02Logical volume "lvdata02" created.
      [root@CentOS7-0003 /]$ lvs #查看逻辑卷信息LV       VG                  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertroot     centos_centos7-0003 -wi-ao---- <17.00g                                                    swap     centos_centos7-0003 -wi-ao----   2.00g                                                    lvdata01 vgdata              -wi-a-----   4.00g                                                    lvdata02 vgdata              -wi-a-----   5.99g                                                    
      [root@CentOS7-0003 /]$  lvextend -L +10G  /dev/centos_centos7-0003/root #分配给现有的逻辑卷使用命令,这是哪个卷组的空间呢?应该是/centos_centos7-0003卷组的吧
      

      查看逻辑卷:lvs

2、解决 Linux /dev/mapper/ubuntu–vg-ubuntu–lv 磁盘空间不足的问题【与问题6更相关一些】

  • df -h查看文件系统磁盘空间的使用情况

  • 查看卷组的信息vgdisplay(卷组的概念在上面有解释)

    • 发现 Free PE / Size还有空间
  • 通过lvresize -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv命令进行磁盘扩容(使用100%的FREE PE )

  • 刷新逻辑卷 /dev/mapper/ubuntu--vg-ubuntu--lv

    • 执行命令:resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
  • 再查看空间:df -h

    • 此时Free PE / Size已经用完了

1.7 问题7:直接挂载分区 和 挂载逻辑卷 有什么区别呢?

参考:LVM逻辑卷的配置和挂载使用

挂载逻辑卷的好处(LVM):

①硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间

②用户/用户组的空间建立在LVM上,可以随时按要求增大,或根据使用情况对各逻辑卷进行调整。当系统空间不足而加入新的硬盘时,不必把用户的数据从原硬盘迁移到新硬盘,而只须把新的分区加入卷组并扩充逻辑卷即可。同样,使用LVM可以在不停服务的情况下。把用户数据从旧硬盘转移到新硬盘空间中去

如果直接挂载物理分区的话,那么可能要增加容量的时候,可能就要涉及搬移数据。

ChatGPT:

直接挂载分区(Directly Mounting a Partition)和挂载逻辑卷(Mounting a Logical Volume)在Linux系统中是两种不同的磁盘管理方式,它们在概念和实现上有所区别。

  1. 直接挂载分区
    • 在直接挂载分区的情况下,你直接对物理硬盘上的某个分区进行格式化,然后将其挂载到文件系统中。
    • 这种方式下,分区的大小是固定的,不能在线调整。
    • 直接挂载分区通常用于简单的文件存储需求,或者当不需要动态调整分区大小时。
  2. 挂载逻辑卷
    • 逻辑卷(Logical Volume, LV)是建立在物理卷(Physical Volume, PV)之上的虚拟存储卷。
    • 逻辑卷可以跨越多个物理卷,这意味着可以在多个物理硬盘上创建一个逻辑卷。
    • 逻辑卷的大小可以在线调整(通过扩展或缩小PE,即物理扩展),这使得逻辑卷非常灵活,可以满足不断变化的存储需求。
    • 挂载逻辑卷通常与逻辑卷管理(LVM)一起使用,LVM是一种允许用户在不停止服务的情况下调整分区大小的技术。

总结区别:

  • 灵活性:逻辑卷比直接挂载分区更灵活,因为它们可以跨越多个物理卷,并且可以在线调整大小。
  • 管理:逻辑卷通过LVM管理,提供了更复杂的存储管理功能,如快照、克隆和卷组管理。
  • 性能:直接挂载分区通常比逻辑卷更快,因为它们不涉及额外的虚拟化层。
  • 用途:直接挂载分区适用于简单的存储需求,而逻辑卷适用于需要高度灵活性和动态调整大小的复杂存储需求。

1.8 问题8:为什么ubuntu,会出现/dev/mapper/ubuntu--vg--1-ubuntu--lv但是没有/dev/sda3/ubuntu--vg--1-ubuntu--lv呢?

通过lsblk命令查看所有硬盘信息:

root@root:~# lsblk
NAME                         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop0                          7:0    0   62M  1 loop 
loop1                          7:1    0 79.9M  1 loop /snap/lxd/22923
loop2                          7:2    0 63.9M  1 loop /snap/core20/2318
loop3                          7:3    0   87M  1 loop /snap/lxd/28373
loop4                          7:4    0 38.7M  1 loop /snap/snapd/21465
loop5                          7:5    0 63.9M  1 loop /snap/core20/2264
loop6                          7:6    0 38.8M  1 loop /snap/snapd/21759
sda                            8:0    0  128G  0 disk 
├─sda1                         8:1    0    1M  0 part 
├─sda2                         8:2    0    2G  0 part /boot
└─sda3                         8:3    0  126G  0 part └─ubuntu--vg--1-ubuntu--lv 253:0    0   63G  0 lvm  /
sr0                           11:0    1  1.8G  0 rom  

可以发现ubuntu--vg--1-ubuntu--lv是在分区sda3下面的

通过pvs命令查看系统中有哪些物理卷PV:

root@root:~# pvsPV         VG          Fmt  Attr PSize    PFree /dev/sda3  ubuntu-vg-1 lvm2 a--  <126.00g 63.00g

通过df -hT命令查看系统中有哪些可用的挂载:

root@root:~# df -hT
Filesystem                           Type     Size  Used Avail Use% Mounted on
tmpfs                                tmpfs    794M  1.5M  793M   1% /run
/dev/mapper/ubuntu--vg--1-ubuntu--lv ext4      62G   23G   36G  40% /
tmpfs                                tmpfs    3.9G   12K  3.9G   1% /dev/shm
tmpfs                                tmpfs    5.0M     0  5.0M   0% /run/lock
/dev/sda2                            ext4     2.0G  251M  1.6G  14% /boot
tmpfs                                tmpfs    794M   24K  794M   1% /run/user/0
overlay                              overlay   62G   23G   36G  40% /var/lib/docker/overlay2/b0f34b35f2ace032537f604f9504f5ee87aac231c07e4dda62d2bdaada287206/merged
overlay                              overlay   62G   23G   36G  40% /var/lib/docker/overlay2/74f9dddf9bafe92b297116ce4ecad6b579eb2ca20fc58f9d9c83bd1e233c6b0b/merged

为什么是/dev/mapper/ubuntu--vg--1-ubuntu--lv而不是/dev/sda3/ubuntu--vg--1-ubuntu--lv呢?

  • 可能因为,/sda3并不是卷组, 它只是一个物理卷。

查看所有卷组的命令:vgs # 查看所有卷组信息

root@root:~# vgsVG          #PV #LV #SN Attr   VSize    VFree ubuntu-vg-1   1   1   0 wz--n- <126.00g 63.00g

查看卷组由哪些物理卷构成?pvscan命令可以看到

root@root:~# pvscanPV /dev/sda3   VG ubuntu-vg-1     lvm2 [<126.00 GiB / 63.00 GiB free]Total: 1 [<126.00 GiB] / in use: 1 [<126.00 GiB] / in no VG: 0 [0   ]

查看已建立的逻辑卷?lvscan命令

root@root:~# lvscanACTIVE            '/dev/ubuntu-vg-1/ubuntu-lv' [<63.00 GiB] inherit
root@root:~# ls /dev/ubuntu-vg-1/ubuntu-lv
/dev/ubuntu-vg-1/ubuntu-lv

看来,/dev/mapper/ubuntu--vg--1-ubuntu--lv 就是 /dev/ubuntu-vg-1/ubuntu-lv

root@root:~# ls -l /dev/ubuntu-vg-1/ubuntu-lv
lrwxrwxrwx 1 root root 7 May  8 15:18 /dev/ubuntu-vg-1/ubuntu-lv -> ../dm-0
root@root:~# ls -l /dev/mapper/ubuntu--vg--1-ubuntu--lv
lrwxrwxrwx 1 root root 7 May  8 15:18 /dev/mapper/ubuntu--vg--1-ubuntu--lv -> ../dm-0

最终答案:确实不应该是/dev/sda3/ubuntu--vg--1-ubuntu--lv,应该和/dev/ubuntu-vg-1/ubuntu-lv相关

重要参考:划分磁盘命令(物理卷、卷组、逻辑卷)

  • 很多命令

1.9 问题9:为什么是/dev/mapper/呢?

重要参考:

linux: /dev/mapper/目录的作用

  • 总结来说,/dev/mapper/ 目录是 Linux 系统中管理复杂存储配置的关键部分,尤其是在使用 LVM 或设备映射功能时。通过这个目录,用户和系统管理员可以更方便地访问和管理这些虚拟存储设备。

Linux系统/dev/mapper目录浅谈

  • 其实在系统里/dev/Volume/lv_root 和 /dev/mapper/Volume-lv_root以及/dev/dm-0都是一个东西,都可当作一个分区来对待。

1.10 常用磁盘命令总结

  • df -hT:查看已经挂载使用的磁盘空间
  • lsblk查看所有硬盘信息(包括未分区、未加入逻辑卷、未挂载使用的)

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

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

相关文章

LeetCode - 贪心算法 (Greedy Algorithm) 集合 [分配问题、区间问题]

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/139242199 贪心算法&#xff0c;是在每一步选择中&#xff0c;都采取当前状态下&#xff0c;最好或最优&#xff08;即最有利&#xff09;的选择&…

奇门遁甲古籍《烟奇要览》

《烟奇要览》 全书共178页 时间有限&#xff0c;仅上传部分图片&#xff01;

YOLOv10介绍与推理--图片和视频演示(附源码)

导 读 本文主要对YOLOv10做简单介绍并给出推理图片和视频的步骤演示。 YOLOv10简介 YOLOv10是清华大学的研究人员在Ultralytics Python包的基础上&#xff0c;引入了一种新的实时目标检测方法&#xff0c;解决了YOLO 以前版本在后处理和模型架构方面的不足。通过消除非最大抑…

人工智能超万卡集群的核心设计原则和架构

超万卡集群的核心设计原则和架构 超万卡集群建设方兴未艾,当前主要依托英伟达GPU及其设备。英伟达GPU在大模型训练中表现卓越,但国产AI芯片虽进步显著,性能与生态构建仍存差距。面对诸多挑战,构建技术领先、基于国产生态的超万卡集群,仍需不断突破与创新。 大模型升级至万…

Linux终端连接工具

终端连接工具有很多中&#xff0c;这里我只收集了一些常用的或免费的工具 我一般会配套使用&#xff1a; FinalShell -->命令行工具&#xff08;Mac和win&#xff09; WinSCP -->文件上传工具&#xff08;win&#xff09; filezilla -->文件上传工具&#xff08;Mac …

金锋关晓柔短视频:成都鼎茂宏升文化传媒公司

金锋关晓柔短视频&#xff1a;情感与创意的交织 在短视频的浪潮中&#xff0c;无数创作者凭借独特的视角和创意脱颖而出。其中&#xff0c;金锋和关晓柔共同打造的短视频系列以其深厚的情感内涵和精湛的创意表达&#xff0c;成都鼎茂宏升文化传媒公司吸引了大量观众的关注&…

知识融合概述

文章目录 知识融合知识融合过程研究现状技术发展趋势 知识融合 知识融合的概念最早出现在1983年发表的文献中&#xff0c;并在20世纪九十年代得到研究者的广泛关注。而另一种知识融合的定义是指对来自多源的不同概念、上下文和不同表达等信息进行融合的过程认为知识融合的目标是…

vue数据持久化仓库

本文章是一篇记录实用性vue数据持久化仓的使用&#xff01; 首先在src中创建store文件夹&#xff0c;并创建一个根据本页面相关的名称&#xff0c; 在终端导入&#xff1a;npm i pinia 和 npm i pinia-plugin-persistedstate 接下来引入代码&#xff1a; import { defineSt…

Python Anaconda环境复制

虚拟环境复制 conda-pack 第一种方式 conda打包 在打包之前如果没有conda-pack包的话&#xff0c;需要安装pip install conda-pack打包 conda pack -n py36 -o py366.tar.gz -o就是给导出得到的压缩包就在当前目录下 传输到另外一台服务器上 有两台linux服务器&#xff0c…

有哪些永久免费的进销存管理软件?

我明白许多中小企业在寻求进销存系统时&#xff0c;希望能找到一款完全免费的解决方案&#xff0c;以减轻经济压力。这种心态非常正常&#xff0c;毕竟成本是任何企业都需要仔细考虑的因素。然而&#xff0c;我要强调的是&#xff0c;市场上那些声称“完全免费”的进销存系统&a…

东子哥:从来不拼搏的人,不是我的兄弟!新一轮裁员潮即将来临!

今年初&#xff0c;包括微软、亚马逊、谷歌母公司Alphabet等在内的巨头先后宣布裁员计划&#xff0c;曾掀起了一轮裁员潮。 进入年中阶段&#xff0c;特斯拉、理想汽车、TikTok、安德玛等知名巨头&#xff0c;也先后宣布裁员计划&#xff0c;难道&#xff0c;新一轮裁员潮已经…

OrangePi AIpro评测 - 基础操作篇

0. 环境 ●OrangePi AIpro ●win10笔记本 ●路由器 准备下win10电脑、路由器&#xff0c;这些板卡通常是在网络正常的环境下才方便测试。 还要准备OrangePi AIpro的官方资料&#xff1a; http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-suppo…

第八届能源、环境与材料科学国际学术会议(EEMS 2024)

文章目录 一、重要信息二、大会简介三、委员会四、征稿主题五、论文出版六、会议议程七、出版信息八、征稿编辑 一、重要信息 会议官网&#xff1a;http://ic-eems.com主办方&#xff1a;常州大学大会时间&#xff1a;2024年06月7-9日大会地点&#xff1a;新加坡 Holiday Inn …

[NISACTF 2022]easyssrf、[NISACTF 2022]level-up

[NISACTF 2022]easyssrf 使用dirsearch扫描后没发现什么路径 尝试访问127.0.0.1&#xff0c;成功了 访问127.0.0.1/flag.php提示有文件/fl4g 使用file://协议读取文件/fl4g&#xff0c;提示除此页面外还有一个ha1x1ux1u.php页面。 file:///fl4g 直接访问&#xff0c;发现GET…

鸿蒙开发接口UI界面:【@ohos.mediaquery (媒体查询)】

媒体查询 说明&#xff1a; 从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 &#xff1a; gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 导入模块 import mediaquery from ohos.media…

2024斯佩菈音乐剧暑假训练营 30天创造奇迹培育坚强自信好少年

以声问本&#xff0c;素质教育&#xff0c;融会中西&#xff0c;知行合一。音乐是生活的灵魂&#xff0c;艺术的真正意义在于使人幸福&#xff0c;得到鼓舞和力量。多一把衡量的尺子&#xff0c;就会多出一批好学生。 相对学校语数英等学科教育&#xff0c;孩子心灵成长方面很…

最新扣子(Coze)实战教程:扣子​使用基础,完全免费,快来学习吧~

&#x1f9d9;‍♂️ 诸位好&#xff0c;吾乃斜杠君&#xff0c;编程界之翘楚&#xff0c;代码之大师。算法如流水&#xff0c;逻辑如棋局。 &#x1f4dc; 吾之笔记&#xff0c;内含诸般技术之秘诀。吾欲以此笔记&#xff0c;传授编程之道&#xff0c;助汝解技术难题。 &#…

【数据结构】链式二叉树(超详细)

文章目录 前言二叉树的链式结构二叉树的遍历方式二叉树的深度优先遍历前序遍历(先根遍历)中序遍历(中根遍历)后序遍历(后根遍历) 二叉树的广度优先遍历层序遍历 二叉树链式结构接口实现二叉树结点个数二叉树叶子结点个数二叉树的深度&#xff08;高度&#xff09;二叉树第k层结…

“AURORA-M:首个遵循人类审查安全指令微调的开源多语言模型

在人工智能领域&#xff0c;多模态学习是一个日益增长的研究领域&#xff0c;它涉及将来自不同源&#xff08;如图像、文本、音频等&#xff09;的信息结合起来。但高昂的训练计算成本限制了模型的普及性&#xff0c;使得小型机构和个人难以负担。而且现有模型在多语言能力上受…

Unity LayerMask避坑笔记

今天使用Physics2D.OverlapAreaNonAlloc进行物理检测时候&#xff0c;通过LayerMask.NameToLayer传入了int值的LayerMask&#xff0c;结果一直识别不到&#xff0c;经过Debug才找到问题&#xff0c;竟是LayerMask的“值”传输有问题&#xff0c;记录一下。 直接贴代码输出结果&…