Linux下挂载lvm 并解决同名冲突及lvm的缺点

本文介绍了解决Linux LVM卷组同名冲突的方法。通过重命名卷组并指定唯一UUID,可以避免挂载时的冲突问题。同时讨论了LVM的优缺点及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux下挂载lvm 并解决同名冲突

在Linux下使用新硬盘安装系统,安装好以后再挂载原来的硬盘,分区格式全为系统默认分区,系统默认使用的
是lvm格式,并且默认的卷都是 VolGroup00

使用 pvs 查看显示如下:

# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 VolGroup00 lvm2 a- 136.62G 0
/dev/sdb2 VolGroup00 lvm2 a- 136.62G 0

发现可以正确认别到两个VG,但是同名,如何挂载呢?

解决办法是,将原来的VG更名,解决冲突即可挂载。

重命名格式为:vgrename VolGroup00 VolGroup01

此时会提示:
# vgrename VolGroup00 VolGroup01
Found more than one VG called VolGroup00. Please supply VG uuid.

原因是存在两个 VolGroup00,修改的方法他已经提示了要指定 VG uuid即可。

查看VG uuid的命令为:

# vgs -v
Finding all volume groups
Finding volume group "VolGroup00"
Finding volume group "VolGroup00"
VG Attr Ext #PV #LV #SN VSize VFree VG UUID
VolGroup00 wz--n- 32.00M 1 2 0 136.62G 0 dcHa6G-abU2-Xfq8-EPBm-jBLj-sf18-O5uH0U
VolGroup00 wz--n- 32.00M 1 2 0 136.62G 0 OF8g7h-PQJB-9D9z-yPxn-1kfY-Advq-YbNHJ9

查到VG uuid以后,再次执行改名:

# vgrename OF8g7h-PQJB-9D9z-yPxn-1kfY-Advq-YbNHJ9 VolGroup01
Volume group "VolGroup00" still has active LVs

修改成功以后,再执行:lvscan

# lvscan
inactive '/dev/VolGroup01/LogVol00' [130.84 GB] inherit
inactive '/dev/VolGroup01/LogVol01' [5.78 GB] inherit
ACTIVE '/dev/VolGroup00/LogVol00' [130.84 GB] inherit
ACTIVE '/dev/VolGroup00/LogVol01' [5.78 GB] inherit

可以看到新修改的VolGroup01是inactive状态。

再使用vgchange 加载 VolGroup01

# vgchange -ay /dev/VolGroup01
2 logical volume(s) in volume group "VolGroup01" now active

最后 mount 就可以

# mount /dev/VolGroup01/LogVol00 /mnt/old

至此,全部完成。


-------------------------------------------------------------------
使用LVM逻辑卷管理的利弊

解决方案

  在以往的Linux系统中(比Redhat AS4更早的版本),默认是不支持LVM逻辑卷管理的

  当磁盘连接到服务器后,使用fdisk将其划分为主分区和扩展分区

  随后直接把分区进行格式化,生成诸如/dev/sda1、/dev/sda2之类的分区

  这些分区可以直接用mount命令挂载到目录来使用

  当应用了LVM后,磁盘分区/dev/sda1、/dev/sda2这样的分区会被LVM认为是一整个VG,即卷组

  这样的卷组是不能直接挂载的

  要由LVM转换成/dev/VolGroup01这样的VG卷组

  然后每个卷组又包含/dev/VolGroup01/LogVol01这样的LV,即逻辑卷

  当使用他们的时候,需要将/dev/VolGroup01/LogVol01挂载到目录

  因此,LVM虽然提供了可调节分区(卷)大小的能力

  但是由于其PV->VG-LV三层架构的存在,在后期数据迁移和恢复上比较复杂

  例如,当前磁盘使用了/dev/VolGroup00/LogVol01这样的名称

  把这块磁盘挂载到其他服务器上后,如果存在另外一块硬盘名称也是由LVM管理

  并且默认也使用了“/dev/VolGroup00/LogVol01”的名称

  那么两个硬盘的VG名称冲突,就无法继续挂载LV读取数据了

  这种冲突,在两个硬盘都是数据磁盘的时候,还可以修改名称来解决

  但是,如果冲突双方中的一块是系统硬盘,那么则LVM拒绝对磁盘做卸载、改名等处理

  此时第二块硬盘里边的数据就恢复不出来了

  唯一的解决方法是把这个硬盘挂载到其他没有使用LVM的服务器上

  或者找一个使用了LVM但是VG卷组名称不一样的服务器上

  这是LVM设计应用中的一个无法解决的bug

  因此,在服务器上,为了保证尽可能好的后期灾难恢复,不推荐用LVM

  最好使用简单直接使用磁盘分区格式化,以便恢复数据

  如果非要用LVM,请注意,在安装系统分区之初,就给自己磁盘的LVM起一个不容易冲突的唯一的名字

  例如/dev/VolHehe001、/dev/VolHehe002等
### Kali Linux 挂载点磁盘空间满解决方案 #### 分析当前磁盘使用情况 为了有效解决问题,首先要了解各个挂载点的具体占用情况。可以使用 `df` 命令来查看各分区的空间使用状况。 ```bash df -h ``` 这条命令会以人类可读的方式显示所有已挂载文件系统的大小、已用量、可用量以及挂载点等信息[^1]。 #### 清理不必要的大文件和旧日志 很多情况下,磁盘被占满是因为存在大量不再需要的大文件或是过期的日志记录。可以通过以下方法清理: - **查找删除大型无用文件** 使用 `find` 查找特定目录下超过指定大小的文件,逐一确认是否可以安全移除。 ```bash find /path/to/search -type f -size +100M ``` - **压缩或清空历史日志** 日志通常位于 `/var/log/` 下面,对于一些非常大的日志文件可以选择将其重命名备份后再创建一个新的同名空白文件继续服务;也可以考虑定期轮转日志文件设置最大保留天数防止无限增长。 ```bash logrotate -f /etc/logrotate.conf ``` 上述措施能够快速释放部分存储资源,缓解燃眉之急。 #### 扩展现有逻辑卷(如果适用) 当物理硬盘本身还有剩余未分配的空间时,可以直接通过 LVM (Logical Volume Manager) 来扩展现有的逻辑卷而不必重新规划整个磁盘布局。具体步骤如下: - 验证是否有足够的自由PE可供增加至目标LV上; - 利用 `lvextend` 修改对应 LV 的容量参数; - 对新扩增出来的区域执行文件系统调整操作使新增加的空间生效。 ```bash pvdisplay # 显示PV详情 vgdisplay # 展示VG状态 lvextend -L +1G /dev/mapper/vg_name-lv_root # 给根分区追加1GB空间为例 resize2fs /dev/mapper/vg_name-lv_root # 调整ext系列文件系统尺寸适应变化后的底层设备结构 ``` 注意这里假设采用的是 ext 类型文件系统,如果是 xfs 或者 btrfs,则应分别调用相应的工具来进行在线扩容处理。 #### 添加额外的数据存储位置 假如以上方式仍不足以解决问题,那么最彻底的办法莫过于向主机内添加一块全新的硬盘作为独立的数据仓库。完成硬件连接之后按照常规流程初始化这块驱动器即可成为新的工作区供应用程序存取资料。 #### 替换引导文件确保多操作系统兼容性 在涉及更改启动配置的情况下,务必小心谨慎以免影响正常开机体验。特别是当环境中同时存在 Windows 和 Linux 双系统共存的情形下,建议优先选用 GRUB 引导加载程序替代原有的 Windows Boot Manager 实现灵活切换不同OS环境的目的[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值