当前位置: 首页 > news >正文

银河麒麟系统磁盘管理

银河麒麟系统磁盘管理

一、系统环境

  • Kylin-Server-V10-SP3-2403-Release-20240426-x86_64.iso

二、磁盘管理

1.添加物理磁盘

image-20250904202350867

  • 系统识别磁盘,不重启系统重新扫描 SCSI 主机适配器识别到新连接的 SCSI 或 SATA 存储设备

    echo '- - -' > /sys/class/scsi_host/host32/scan
    或
    for i in /sys/class/scsi_host/host*/scan;do echo '- - -' > $i;done
    
  • 查询磁盘状态

    [root@elerejazgnbgskbhotwpgnga-virt ~]# lsblk -f
    NAME          FSTYPE      FSVER            LABEL  UUID                                   FSAVAIL FSUSE% MOUNTPOINT
    vda
    ├─vda1        xfs                                 cef7c1f3-78dc-4b61-8357-f688061b1eef      802M    21% /boot
    └─vda2        LVM2_member LVM2 001                3ZUHlu-LeW4-n5gi-FVH8-1LoC-rhUg-P1XP8b├─klas-root xfs                                 ae96ac90-5cbc-4367-9d04-054aa5aea0f6     19.2G    29% /└─klas-swap swap        1                       d402647f-4944-4e73-95f4-ddfc8691de7c                  [SWAP]
    vdb           iso9660     Joliet Extension cidata 2025-09-04-11-59-08-00
    vdc
    vdd

2.磁盘格式管理

  • 设置磁盘 为 MBR

    fdisk /dev/vdc  # 替换为实际磁盘,如 /dev/sda输入 o 指令,确认后会清除磁盘原有分区并创建 MBR 格式:
    Command (m for help): o  # 清除并创建 DOS(MBR)分区表
    Created a new DOS disklabel with disk identifier 0xbd33cb8f.输入 w 写入分区表并退出:
    Command (m for help): w
    The partition table has been altered.
    Calling ioctl() to re-read partition table.
    Syncing disks.查询格式配置
    [root@elerejazgnbgskbhotwpgnga-virt ~]# fdisk -l /dev/vdc
    Disk /dev/vdc: 10 GiB, 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
    Disklabel type: dos
    Disk identifier: 0xbd33cb8f
    
  • 设置磁盘 为 gpt

    gdisk /dev/vdd  # 替换为目标磁盘输入 o 指令,确认后会清除原有分区并创建 GPT 格式:
    Command (? for help): o  # 清除并创建 GPT 分区表
    This option deletes all partitions and creates a new protective MBR.
    Proceed? (Y/N): y输入 w 写入分区表并退出:
    Command (? for help): wFinal checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
    PARTITIONS!!Do you want to proceed? (Y/N): y
    OK; writing new GUID partition table (GPT) to /dev/vdd.
    The operation has completed successfully.查询格式设置
    [root@elerejazgnbgskbhotwpgnga-virt ~]# fdisk -l /dev/vdd
    Disk /dev/vdd: 20 GiB, 21474836480 bytes, 41943040 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
    Disklabel type: gpt
    Disk identifier: CDF240A4-A8B0-404D-BEBE-9D889A0DA28E

3.磁盘分区管理

  • MBR格式分区

    [root@elerejazgnbgskbhotwpgnga-virt ~]# fdisk /dev/vdcWelcome to fdisk (util-linux 2.35.2).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.Command (m for help): n   #新建分区
    Partition typep   primary (0 primary, 0 extended, 4 free)e   extended (container for logical partitions)
    Select (default p): p    # 主分区
    Partition number (1-4, default 1): 1   # 分区编号 
    First sector (2048-20971519, default 2048):   # 起始扇区(默认即可)
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-20971519, default 20971519): +4G
    # 分区大小
    Created a new partition 1 of type 'Linux' and of size 4 GiB.Command (m for help): n
    Partition typep   primary (1 primary, 0 extended, 3 free)e   extended (container for logical partitions)
    Select (default p): e  # 扩展分区
    Partition number (2-4, default 2): 2
    First sector (8390656-20971519, default 8390656):
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (8390656-20971519, default 20971519):Created a new partition 2 of type 'Extended' and of size 6 GiB.Command (m for help): n
    All space for primary partitions is in use.
    Adding logical partition 5   # 默认逻辑分区
    First sector (8392704-20971519, default 8392704):
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (8392704-20971519, default 20971519):Created a new partition 5 of type 'Linux' and of size 6 GiB.Command (m for help): p  #查看分区信息
    Disk /dev/vdc: 10 GiB, 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
    Disklabel type: dos
    Disk identifier: 0xbd33cb8fDevice     Boot   Start      End  Sectors Size Id Type
    /dev/vdc1          2048  8390655  8388608   4G 83 Linux
    /dev/vdc2       8390656 20971519 12580864   6G  5 Extended
    /dev/vdc5       8392704 20971519 12578816   6G 83 LinuxCommand (m for help): w  #w 保存并退出
    The partition table has been altered.
    Calling ioctl() to re-read partition table.
    Syncing disks.(可选)输入 t 更改分区类型(如 swap 分区为 82,默认 83 为 Linux 分区,8e为Linux LVM):
    plaintext
    Command (m for help): t
    Selected partition 1
    Hex code (type L to list all codes): 83
    
  • GPT格式分区

    [root@elerejazgnbgskbhotwpgnga-virt ~]# gdisk /dev/vdd
    GPT fdisk (gdisk) version 1.0.5.1Partition table scan:MBR: protectiveBSD: not presentAPM: not presentGPT: presentFound valid GPT with protective MBR; using GPT.Command (? for help): n   #新建分区
    Partition number (1-128, default 1): 1  # 分区编号
    First sector (34-41943006, default = 2048) or {+-}size{KMGTP}:   # 起始扇区(默认即可)
    Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: +11G   # 分区大小
    Current type is 8300 (Linux filesystem)
    Hex code or GUID (L to show codes, Enter = 8300):  # 分区类型(默认即可)
    ...
    Command (? for help): p  #查看分区信息
    Disk /dev/vdd: 41943040 sectors, 20.0 GiB
    Sector size (logical/physical): 512/512 bytes
    Disk identifier (GUID): CDF240A4-A8B0-404D-BEBE-9D889A0DA28E
    Partition table holds up to 128 entries
    Main partition table begins at sector 2 and ends at sector 33
    First usable sector is 34, last usable sector is 41943006
    Partitions will be aligned on 2048-sector boundaries
    Total free space is 2014 sectors (1007.0 KiB)Number  Start (sector)    End (sector)  Size       Code  Name1            2048        23070719   11.0 GiB    8E00  Linux LVM2        23070720        41943006   9.0 GiB     8E00  Linux LVM输入 w 保存并退出:
    Command (? for help): wFinal checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
    PARTITIONS!!Do you want to proceed? (Y/N): y
    OK; writing new GUID partition table (GPT) to /dev/vdd.
    The operation has completed successfully.(可选)输入 t 更改分区类型(默认 8300 为 Linux 分区,8e00为Linux LVM):
    Command (? for help): t
    Partition number (1-2): 2
    Current type is 8300 (Linux filesystem)
    Hex code or GUID (L to show codes, Enter = 8300): 8e00
    Changed type of partition to 'Linux LVM'

    partprobe 的作用就是强制内核重新检测磁盘分区表,使新的分区配置生效。

4.格式化文件系统

# 格式化为 ext4(最常用)
sudo mkfs.ext4 /dev/sdb1  # /dev/sdb1 为分区设备名# 格式化为 xfs(适合大文件)
sudo mkfs.xfs /dev/sdb1# 格式化为 swap(交换分区)
sudo mkswap /dev/sdb1
sudo swapon /dev/sdb1  # 启用 swap 分区swapoff -a       #禁用交换分区
  • 调整Linux 系统中控制内存交换的参数
如果需要调整该值,可以使用以下命令(临时生效):
sudo sysctl vm.swappiness=10  # 例如改为10,减少swap使用若要永久生效,需编辑 /etc/sysctl.conf 文件,添加或修改:
vm.swappiness=10

5.挂载文件系统

#获取分区 UUID(唯一标识,避免设备名变动
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="4c419c89-d1d0-41e6-b249-fb291d7a82b4" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="45ec82ae-01"编辑 /etc/fstab,添加如下行:
echo 'UUID=4c419c89-d1d0-41e6-b249-fb291d7a82b4 /data ext4    defaults        0 0' | sudo tee -a /etc/fstab#更新挂载信息
systemctl daemon-reload[root@localhost ~]# mount -a[root@localhost ~]# mount -o remount /data

6.逻辑卷管理

  • 创建物理卷(将磁盘或分区初始化为 LVM 物理卷(PV)

    #确认目标设备
    [root@elerejazgnbgskbhotwpgnga-virt ~]# lsblk /dev/vdc /dev/vdd
    NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    vdc    252:32   0  10G  0 disk
    ├─vdc1 252:33   0   4G  0 part
    ├─vdc2 252:34   0   1K  0 part
    └─vdc5 252:37   0   6G  0 part
    vdd    252:48   0  20G  0 disk
    ├─vdd1 252:49   0  11G  0 part
    └─vdd2 252:50   0   9G  0 part#创建PV
    [root@elerejazgnbgskbhotwpgnga-virt ~]# pvcreate /dev/vdc1 /dev/vdc5Physical volume "/dev/vdc1" successfully created.Physical volume "/dev/vdc5" successfully created.[root@elerejazgnbgskbhotwpgnga-virt ~]# pvsPV         VG   Fmt  Attr PSize   PFree/dev/vda2  klas lvm2 a--  <29.00g     0/dev/vdc1       lvm2 ---    4.00g  4.00g/dev/vdc5       lvm2 ---   <6.00g <6.00g查看 PV 信息:
    sudo pvdisplay   # 详细信息
    sudo pvs         # 简洁信息# 删除指定 PV(逐个删除)
    sudo pvremove /dev/sdb /dev/sdc# 输出示例(表示成功删除)Labels on physical volume "/dev/sdb" successfully wiped.Labels on physical volume "/dev/sdc" successfully wiped.
    
  • 创建卷组

    将多个 PV 组合成卷组(VG),作为逻辑卷的 “存储池”:创建 VG(命名为 my_vg,包含 /dev/sdb 和 /dev/sdc):
    [root@elerejazgnbgskbhotwpgnga-virt ~]# vgcreate my_vg /dev/vdc1 /dev/vdc5Volume group "my_vg" successfully created
    或者
    可指定 PE(物理扩展块)大小(默认 4MB):
    sudo vgcreate -s 16M my_vg /dev/sdb /dev/sdc  # PE 设为 16MB[root@elerejazgnbgskbhotwpgnga-virt ~]# vgs my_vgVG    #PV #LV #SN Attr   VSize VFreemy_vg   2   0   0 wz--n- 9.99g 9.99g#使用 vgextend 命令将新 PV 加入目标卷组(以卷组 my_vg 为例)
    [root@elerejazgnbgskbhotwpgnga-virt ~]# vgextend my_vg /dev/vdd1查看 VG 信息:
    sudo vgdisplay my_vg  # 详细信息(含总大小、空闲空间)
    sudo vgs my_vg        # 简洁信息# 删除指定卷组
    sudo vgremove my_vg# 确认删除
    Do you really want to remove volume group "my_vg" containing 0 logical volumes? [y/n]: yVolume group "my_vg" successfully removed
    
  • 创建逻辑卷

    从 VG 中划分空间创建逻辑卷(LV),可直接作为 “分区” 使用:创建 LV(命名为 my_lv,从 my_vg 中分配 7GB 空间):[root@elerejazgnbgskbhotwpgnga-virt ~]# lvcreate -L 7G -n my_lv my_vgLogical volume "my_lv" created.其他常用选项:
    按 PE 数量分配,分配全部空闲空间:
    sudo lvcreate -l +100%FREE -n my_lv my_vg[root@elerejazgnbgskbhotwpgnga-virt ~]# lvs /dev/my_vg/my_lvLV    VG    Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertmy_lv my_vg -wi-a----- 7.00g查看 LV 信息:
    sudo lvdisplay /dev/my_vg/my_lv  # 详细信息
    sudo lvs /dev/my_vg/my_lv        # 简洁信息# 删除指定 LV(需提供完整路径)
    sudo lvremove /dev/my_vg/my_lv# 系统会提示确认,输入 y 执行删除
    Do you really want to remove and DISCARD active logical volume my_vg/my_lv? [y/n]: y
    ----------------------------------------------------------------------------------
    LV 扩容(扩展逻辑卷大小)
    # 增加指定大小(如增加 50GB)
    sudo lvextend -L +50G /dev/my_vg/my_lv# 使用 VG 中全部空闲空间
    sudo lvextend -l -r +100%free /dev/my_vg/my_lv
    -L:指定绝对大小或增减量(带 + 号)
    -l:按物理扩展块(PE)数量操作(+100%FREE 表示全部空闲 PE)LV 扩容后,需同步扩展文件系统才能识别新增空间,不同文件系统命令不同
    ext4/xfs 格式(最常用):
    # ext4 格式(无需卸载,在线扩容)
    sudo resize2fs /dev/my_vg/my_lv# xfs 格式(需先挂载,且只能扩容不能缩容)
    sudo xfs_growfs /mnt/my_lv  # 需指定挂载点而非设备路径
    -----------------------------------------------------------------------------------
    LV 缩容(减小逻辑卷大小)
    缩容风险较高,需严格按步骤操作(xfs 格式不支持缩容,仅 ext4/ext3 等支持):
    1. 卸载 LV(必须卸载)
    [root@elerejazgnbgskbhotwpgnga-virt ~]# umount /opt2. 检查文件系统完整性(关键,避免数据损坏)
    # ext4/ext3 格式
    [root@elerejazgnbgskbhotwpgnga-virt ~]# e2fsck -f /dev/my_vg/my_lv  #-f:强制检查(即使系统认为文件系统正常)
    e2fsck 1.45.6 (20-Mar-2020)
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
    /dev/my_vg/my_lv: 11/468640 files (0.0% non-contiguous), 53896/1891328 blocks3. 缩小文件系统(先于 LV 缩容,顺序不能反
    # 缩小文件系统到目标大小(如 6GB)
    [root@elerejazgnbgskbhotwpgnga-virt ~]# resize2fs /dev/my_vg/my_lv 6G
    resize2fs 1.45.6 (20-Mar-2020)
    Resizing the filesystem on /dev/my_vg/my_lv to 1572864 (4k) blocks.
    The filesystem on /dev/my_vg/my_lv is now 1572864 (4k) blocks long.
    #目标大小必须 小于当前 LV 大小,且大于实际数据占用空间4. 缩小 LV 大小
    # 缩小到目标大小(需与文件系统大小一致,如 6GB)
    [root@elerejazgnbgskbhotwpgnga-virt ~]# lvreduce -L 6G /dev/my_vg/my_lvWARNING: Reducing active logical volume to 6.00 GiB.THIS MAY DESTROY YOUR DATA (filesystem etc.)
    Do you really want to reduce my_vg/my_lv? [y/n]: y   #若提示确认,输入 y 继续(确保已备份数据)Size of logical volume my_vg/my_lv changed from 7.21 GiB (1847 extents) to 6.00 GiB (1536 extents).Logical volume my_vg/my_lv successfully resized.5. 重新挂载 LV
    [root@elerejazgnbgskbhotwpgnga-virt ~]# mount /dev/my_vg/my_lv /opt

7.LV快照管理

#查看原 LV 和 VG 信息
#查看原 LV 信息(确认路径和大小)
sudo lvs /dev/my_vg/my_lv# 查看 VG 空闲空间(确保有足够空间创建快照)
sudo vgs my_vgsudo lvcreate -s -L 10G -n my_lv_snap -p r/dev/my_vg/my_lv
参数说明:
-s:指定创建快照(snapshot)。
-L 10G:设置快照大小(根据原 LV 数据变化量预估,不足会导致快照失效)。
-n my_lv_snap:快照名称。挂载快照(像使用普通 LV 一样):
sudo mkdir /mnt/snap
sudo mount /dev/my_vg/my_lv_snap /mnt/snap
挂载后可查看或复制快照创建时刻的文件数据。
备份数据(例如打包快照内容):
sudo tar -czvf /backup/my_lv_snap_backup.tar.gz -C /mnt/snap .#挂载快照,xfs注意要使用-0 ro实现只读,防止快照被修改
mkdir -p /mnt/snap
mount -o ro,nouuid /dev/vg0/data-snapshot /mnt/snap#恢复快照
umount /dev/vg0/data-snapshot
umount /dev/vg0/data
[root@elerejazgnbgskbhotwpgnga-virt ~]# lvconvert --merge /dev/my_vg/my_lv_snapMerging of volume my_vg/my_lv_snap started.my_vg/my_lv: Merged: 100.00%# 先卸载快照(若已挂载)
sudo umount /mnt/snap# 删除快照
sudo lvremove /dev/my_vg/my_lv_snap
# 提示确认时输入 y

8.迁移磁盘PV

将 /dev/sdc5 上的所有数据迁移到卷组中其他可用 PV:
[root@elerejazgnbgskbhotwpgnga-virt ~]# pvmove /dev/vdc5/dev/vdc5: Moved: 0.07%/dev/vdc5: Moved: 15.96%/dev/vdc5: Moved: 33.81%/dev/vdc5: Moved: 51.92%/dev/vdc5: Moved: 69.77%/dev/vdc5: Moved: 88.27%/dev/vdc5: Moved: 100.00%或者
将 /dev/sdb 的数据迁移到 /dev/sdc(需确保 /dev/sdc 已加入同一 VG):
sudo pvmove /dev/sdb /dev/sdc#使用 vgreduce 从卷组中移除指定 PV
[root@elerejazgnbgskbhotwpgnga-virt ~]# vgreduce my_vg /dev/vdc5Removed "/dev/vdc5" from volume group "my_vg"#清除其 PV 标识
[root@elerejazgnbgskbhotwpgnga-virt ~]# pvremove /dev/vdc5Labels on physical volume "/dev/vdc5" successfully wiped.
http://www.hskmm.com/?act=detail&tid=16239

相关文章:

  • 浅谈傅里叶级数
  • js遍历对象
  • day 10 (函数2 )
  • 入驻了爱发电
  • 奖励函数(双足)
  • 离线部署镜像仓库搭建
  • Temporal和Airflow有什么差别
  • lc1035-不相交的线
  • 自我介绍与未来规划
  • 解构React Server Components:服务端序列化与流式传输的底层逻辑
  • js里面的单引号、双引号及反引号的用法
  • 牛客刷题-Day4
  • Skinned Mesh Renderer与LOD系统蒙皮变形异常全解析
  • K8S (Containerd)初始化安装流程
  • ?模拟赛 赛后总结
  • 日志|动态规划|最长回文子串|最长公共子序列|HTML CSS
  • Java 字段命名避坑: success和isSuccess
  • OTA升级时软件异常复位问题分析
  • Atcoder Educational DP Contest 做题记录
  • 20250924
  • 跨端边云时序数据管理新范式:Apache IoTDB 的 DB+AI 融合之道 - 实践
  • 《Real-Time Rendering》第二章 图形渲染管线
  • 放弃Unity后,我为什么选择了Unigine?
  • PHP 与 Java 的终极对比:2025年,开发者该如何选择? - 详解
  • 题单63——流程控制
  • 银行同业存单的信用等级
  • 软件技术基础第一次作业
  • 2025XDOJ个人题解——写在前面
  • 适合电子纸屏幕的简易象棋打谱程序
  • 0924