centos系统文件损坏或丢失了,导致系统已经无法进入,如何将磁盘里的文件导出来,特别是服务类的配置文件或数据库文件?经本人实战操作,将原centos系统文件损坏的磁盘先挂载到新的centos系统里,能正常访问系统文件损坏的磁盘里的数据文件!!!
如何挂载磁盘到新的系统里,这里就不赘述了,物理机就直接拆硬盘过去启动主机,虚拟机就直接增加新硬盘为现有的vmdk文件(拷贝原损坏系统的vmdk系统文件)
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 1G 0 part /boot
└─sdb2 8:18 0 19G 0 part
├─systemdisk2-root 253:2 0 17G 0 lvm /disk2
└─systemdisk2-swap 253:3 0 2G 0 lvm
sr0 11:0 1 1024M 0 rom
发现sdb为新增的硬盘!
df-h 命令发现原损坏系统的lv逻辑卷没有正常挂载!!!!
不要慌,执行下面命令!
#WARNING: PV Nwgr8l-JsHA-wlmW-d5OB-lcJf-4gQ8-a7c8mD on /dev/sdb2 was already found on /dev/sda2.
#WARNING: PV Nwgr8l-JsHA-wlmW-d5OB-lcJf-4gQ8-a7c8mD prefers device /dev/sda2 because device is used by LV.
#下面警告信息表示在配置存储时发现了重复的物理卷组
pvs | grep -E '^/dev/\w+' | sort | uniq -d #vgs,lvs
#同时PV UUID 为空!!!!
pvdisplay
#将关联的卷组重命名为systemdisk2 ,-i 是导入
vgimportclone -n systemdisk2 /dev/sdb2
#发现没有a, o这两个属性。a表示激活、o表示是否挂载。
lvs
#LV Status 未激活 -c csv格式显示
lvdisplay -a
#LV Path /dev/systemdisk2/root
#LV Name root
#VG Name systemdisk2
#LV UUID tjh61L-H012-I9Uc-vvWC-cymt-p944-ie7HuY
#LV Write Access read/write
#LV Creation host, time localhost, 2021-03-25 23:26:08 +0800
#LV Status uavailable
#通过 VG Name卷组名激活卷
vgchange -ay systemdisk2
#通过LV Path 挂载磁盘
mount /dev/systemdisk2/root /disk2
#解决XFS (dm-2): Filesystem has duplicate UUID 0947235e-fcd3-4035-8199-19ec0a12f7ec - can't mount
#这个错误提示表明文件系统存在重复的UUID,无法进行挂载查看文件系统,ID
blkid
#/dev/mapper/centos-root: UUID="0947235e-fcd3-4035-8199-19ec0a12f7ec" TYPE="xfs"
#/dev/mapper/centos-swap: UUID="b4c81174-7d8f-4f79-beb3-7d58ab7ea359" TYPE="swap"
#/dev/mapper/systemdisk2-root: UUID="0947235e-fcd3-4035-8199-19ec0a12f7ec" TYPE="xfs"
#/dev/mapper/systemdisk2-swap: UUID="b4c81174-7d8f-4f79-beb3-7d58ab7ea359" TYPE="swap"
#持久办法 xfs_admin生成新的UUID
xfs_admin -U generate /dev/mapper/systemdisk2-root #cat /etc/fstab
#挂载磁盘
mount /dev/systemdisk2/root /disk2
#验证访问文件
find /disk2 -name "my.cnf" -type f|xargs cat|awk -F= '$1~"datadir"{print $2}'
#https://server.51cto.com/article/697760.html
#https://linuxcommand.p2hp.com/vgimportclone
#http://blog.chinaunix.net/uid-14358420-id-3057604.html
通过最后一条命令,我们发现可以正常访问原来系统盘的文件啦!!!