Centos如何挂载另一个lvm硬盘
参考文档:
- https://www.cnblogs.com/wuchanming/p/4878116.html
- https://www.cnblogs.com/diantong/p/10554831.html
引子
公司的老旧服务器在最近发现硬盘会出现偷停的现象,所以就采购了一个新的磁盘(顺便换了一个CPU)。
然后插上 新硬盘重装系统 之后,正准备将 旧的硬盘换回去将数据拷贝出来 呢(由于服务器TMD只有一个硬盘卡槽)。。。。然后就发现旧的磁盘没有办法启动了(淦)!!!
然后尝试了如下方法:
- 尝试将旧的磁盘插入到 windows 系统,然后从 windows 中将对应的文件拷贝出来
- 尝试在旧的磁盘中在保留数据的情况下重装系统
- 购买新的硬盘卡槽,然后就旧的磁盘挂载到新的磁盘的某个目录中
第一种方案
尝试了使用 ext2read、Ext2Fsd 这种第三方软件,安装之后发现虽然可以看到旧的硬盘,但是满心欢喜在进入磁盘的时候会报错,然后就放弃了。。。。
第二种方案
说到这里就是一个悲伤的故事:之前linux系统的 / 目录下默认只有50G的磁盘空间,但是磁盘是 1T的,所以就将其他的磁盘空间都移动到了 / 目录下。
但是这样在重装系统的时候就要找一个目录来安装新的系统(其他的目录可以保留数据),但是由于我们上一步的操作,导致没有办法再保留数据的情况下重装系统。。。。。。。
淦。。。。
第三种方案
那就只能走第三种方案了,本文就来详细的介绍一下这种方案。
一、查看逻辑分区
由于旧的磁盘系统启动不了,需要将系统中的数据拷贝出来,所以想到将磁盘挂载到另一个能用的系统中进行拷贝。
但是由于创建的系统都是用默认的方式创建的,所以一般的系统盘都是由两个分区组成,例如: /dev/sda,/dev/sda1 用来存放启动项。
而 /dev/sda2 是一个逻辑卷,由三部分组成:
- /dev/{VolGroup}/root, 例如:/dev/centos_huawei-service/root
- /dev/{VolGroup}/home,例如:/dev/centos_huawei-service/home
- /dev/{VolGroup}/swap, 例如:/dev/centos_huawei-service/swap
但是由于逻辑卷的名字是一样的,所以这样导致将系统盘 /dev/sdb 挂载后,其中的逻辑卷部分不能挂载。
1.1、查看所有硬盘的情况
其中:sda是新的硬盘,sdb则是旧的硬盘
$ fdisk -l
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000c4715
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 121602 976248832 8e Linux LVM
Disk /dev/mapper/VolGroup-lv_root: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/VolGroup-lv_swap: 8338 MB, 8338276352 bytes
255 heads, 63 sectors/track, 1013 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/VolGroup-lv_home: 937.6 GB, 937649242112 bytes
255 heads, 63 sectors/track, 113996 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000
Disk /dev/sdb: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000ec679
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sdb2 64 14594 116707328 8e Linux LVM
1.2、扫描所有的卷组
可以通过 vgscan 命令来扫描所有卷组
$ vgscan
Reading all physical volumes. This may take a while...
WARNING: Duplicate VG name VolGroup: Existing FKsJuO-7348-hHqs-MKVq-WLMl-2Sbh-0oh8NZ (created here) takes precedence over JTFVF9-ULu5-cHKu-T1p3-4HnB-Tk2p-BpjwHX
WARNING: Duplicate VG name VolGroup: Existing FKsJuO-7348-hHqs-MKVq-WLMl-2Sbh-0oh8NZ (created here) takes precedence over JTFVF9-ULu5-cHKu-T1p3-4HnB-Tk2p-BpjwHX
Found volume group "VolGroup" using metadata type lvm2
Found volume group "VolGroup" using metadata type lvm2
通过 vgdisplay 命令来查看卷组的详细信息
$ vgdisplay
WARNING: Duplicate VG name VolGroup: Existing FKsJuO-7348-hHqs-MKVq-WLMl-2Sbh-0oh8NZ (created here) takes precedence over JTFVF9-ULu5-cHKu-T1p3-4HnB-Tk2p-BpjwHX
WARNING: Duplicate VG name VolGroup: Existing FKsJuO-7348-hHqs-MKVq-WLMl-2Sbh-0oh8NZ (created here) takes precedence over JTFVF9-ULu5-cHKu-T1p3-4HnB-Tk2p-BpjwHX
WARNING: Duplicate VG name VolGroup: Existing JTFVF9-ULu5-cHKu-T1p3-4HnB-Tk2p-BpjwHX (created here) takes precedence over FKsJuO-7348-hHqs-MKVq-WLMl-2Sbh-0oh8NZ
--- Volume group ---
VG Name VolGroup
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 111.30 GiB
PE Size 4.00 MiB
Total PE 28492
Alloc PE / Size 28492 / 111.30 GiB
Free PE / Size 0 / 0
VG UUID JTFVF9-ULu5-cHKu-T1p3-4HnB-Tk2p-BpjwHX
WARNING: Duplicate VG name VolGroup: Existing FKsJuO-7348-hHqs-MKVq-WLMl-2Sbh-0oh8NZ (created here) takes precedence over JTFVF9-ULu5-cHKu-T1p3-4HnB-Tk2p-BpjwHX
--- Volume group ---
VG Name VolGroup
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 931.02 GiB
PE Size 4.00 MiB
Total PE 238341
Alloc PE / Size 238341 / 931.02 GiB
Free PE / Size 0 / 0
VG UUID FKsJuO-7348-hHqs-MKVq-WLMl-2Sbh-0oh8NZ
1.3、重新命名挂载盘的卷组名
因为两块磁盘卷组名是一样的,所以 LVM分区 无法挂载,必须改名;
要修改挂载盘的卷组名,这里要分编号哪个是挂载上去的,这里的类似于序列号的就是 VG UUID,卷组名是一样的,只能靠 VG UUID 来修改卷组名
$ vgrename JTFVF9-ULu5-cHKu-T1p3-4HnB-Tk2p-BpjwHX vg01
WARNING: Duplicate VG name VolGroup: Existing FKsJuO-7348-hHqs-MKVq-WLMl-2Sbh-0oh8NZ (created here) takes precedence over JTFVF9-ULu5-cHKu-T1p3-4HnB-Tk2p-BpjwHX
WARNING: Duplicate VG name VolGroup: Existing FKsJuO-7348-hHqs-MKVq-WLMl-2Sbh-0oh8NZ (created here) takes precedence over JTFVF9-ULu5-cHKu-T1p3-4HnB-Tk2p-BpjwHX
WARNING: Duplicate VG name VolGroup: Existing JTFVF9-ULu5-cHKu-T1p3-4HnB-Tk2p-BpjwHX (created here) takes precedence over FKsJuO-7348-hHqs-MKVq-WLMl-2Sbh-0oh8NZ
Volume group "VolGroup" successfully renamed to "vg01"
看到最下面 Volume group “VolGroup” successfully renamed to “vg01” 则说明修改卷组名成功
1.4、再次查看卷组名
再次使用 vgdisplay 命令查看卷组名,可以查看到 卷组名已经发生了修改
$ vgdisplay
--- Volume group ---
VG Name vg01
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 111.30 GiB
PE Size 4.00 MiB
Total PE 28492
Alloc PE / Size 28492 / 111.30 GiB
Free PE / Size 0 / 0
VG UUID JTFVF9-ULu5-cHKu-T1p3-4HnB-Tk2p-BpjwHX
--- Volume group ---
VG Name VolGroup
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 931.02 GiB
PE Size 4.00 MiB
Total PE 238341
Alloc PE / Size 238341 / 931.02 GiB
Free PE / Size 0 / 0
VG UUID FKsJuO-7348-hHqs-MKVq-WLMl-2Sbh-0oh8NZ
1.5、扫描逻辑卷
通过 lvscan 看看磁盘有没有激活
$ lvscan
inactive '/dev/vg01/lv_root' [50.00 GiB] inherit
inactive '/dev/vg01/lv_home' [53.45 GiB] inherit
inactive '/dev/vg01/lv_swap' [7.85 GiB] inherit
ACTIVE '/dev/VolGroup/lv_root' [50.00 GiB] inherit
ACTIVE '/dev/VolGroup/lv_home' [873.25 GiB] inherit
ACTIVE '/dev/VolGroup/lv_swap' [7.77 GiB] inherit
可以看到下面 ACTIVE 是正在使用的系统盘,而上面是需要拷贝出来的系统盘
二、激活卷组名和挂载
2.1、激活卷组
使用 vgchange 来激此卷组
$ vgchange -ay /dev/vg01
3 logical volume(s) in volume group "vg01" now active
2.2、再次扫描逻辑卷
再次通过 lvscan 看看磁盘有没有激活
$ lvscan
ACTIVE '/dev/vg01/lv_root' [50.00 GiB] inherit
ACTIVE '/dev/vg01/lv_home' [53.45 GiB] inherit
ACTIVE '/dev/vg01/lv_swap' [7.85 GiB] inherit
ACTIVE '/dev/VolGroup/lv_root' [50.00 GiB] inherit
ACTIVE '/dev/VolGroup/lv_home' [873.25 GiB] inherit
ACTIVE '/dev/VolGroup/lv_swap' [7.77 GiB] inherit
2.3、挂载卷
# 新建一个文件夹用来作为挂载点
$ mkdir /mnt/hdb
# 临时挂载卷到指定挂载点,注意要挂载 /dev/{VolGroup}/root 逻辑卷,挂载home 或者 swap 逻辑卷会有问题
$ mount /dev/vg01/lv_root /mnt/hdb
# 启动自动挂载的操作
# 将“/dev/centos_huawei-service/root /mnt/hdb xfs defaults 0 0” 这样一条数据添加到/etc/fstab文件中,其中的 \t 为tab制表符
$ echo -e "/dev/centos_huawei-service/root\t/mnt/hdb\txfs\tdefaults\t0 0" >> /etc/fstab
三、其他命令汇总
3.1、查看是否识别挂上的硬盘
$ fdisk -l
3.2、扫描卷组
$ vgscan
3.3、扫描逻辑卷
查看要改名的卷组是否被激活,要是被激活的话则不能修改卷组名,如果直接修改的话会提示报错
$ lvscan
3.4、将已激活的逻辑卷修改为“不激活”状态
# 例如:vgchange -an /dev/VolGroup00
$ vgchange -an /dev/{VG}
3.5、修改“不激活”状态卷组名的名称
#例如:vgrename vg01 VolGroup00
$ vgrename VG VG_new
3.6、显示所有卷组
$ vgdisplay
3.7、将“不激活”状态的修改为“激活”状态
$ vgchange -ay /dev/VolGroup00
3.8、将磁盘卷组的“激活”状态取消
$ vgchange -an /dev/VolGroup00
3.9、挂载和取消挂载磁盘卷
# 挂载卷
$ mount /dev/VolGroup00/LogVol00 /mnt/hdb
# 取消挂载卷
$ umount /mnt/hdb
3.5、修改“不激活”状态卷组名的名称
#例如:vgrename vg01 VolGroup00
$ vgrename VG VG_new
3.6、显示所有卷组
$ vgdisplay
3.7、将“不激活”状态的修改为“激活”状态
$ vgchange -ay /dev/VolGroup00
3.8、将磁盘卷组的“激活”状态取消
$ vgchange -an /dev/VolGroup00
3.9、挂载和取消挂载磁盘卷
# 挂载卷
$ mount /dev/VolGroup00/LogVol00 /mnt/hdb
# 取消挂载卷
$ umount /mnt/hdb