Linux 救援 VM 中的 Chroot 环境
适用于:✔️ Linux VM
注意
本文中引用的 CentOS 是 Linux 分发版,将达到生命周期结束(EOL)。 请相应地考虑使用和规划。 有关详细信息,请参阅 CentOS 生命周期指南。
本文介绍如何对 Linux 中救援虚拟机(VM)中的 chroot 环境进行故障排除。
Ubuntu 16.x && Ubuntu 18.x && Ubuntu 20.04
停止或解除分配受影响的 VM。
使用托管磁盘在同一资源组和位置中创建同一代、相同操作系统版本的救援 VM。
使用Azure 门户拍摄受影响虚拟机 OS 磁盘的快照。
从 OS 磁盘的快照创建磁盘,并将其附加到救援 VM。
创建磁盘后,对救援 VM 中的 chroot 环境进行故障排除。
使用以下命令以根用户身份访问 VM:
sudo su -
使用查找磁盘
dmesg
(用于发现新磁盘的方法可能有所不同)。 以下示例用于dmesg
筛选小型计算机系统接口 (SCSI) 磁盘:dmesg | grep SCSI
命令输出类似于以下示例。 在此示例中, /dev/sdc 磁盘是所需的内容:
[ 0.294784] SCSI subsystem initialized [ 0.573458] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) [ 7.110271] sd 2:0:0:0: [sda] Attached SCSI disk [ 8.079653] sd 3:0:1:0: [sdb] Attached SCSI disk [ 1828.162306] sd 5:0:0:0: [sdc] Attached SCSI disk
使用以下命令访问 chroot 环境:
mkdir /rescue mount /dev/sdc1 /rescue mount /dev/sdc15 /rescue/boot/efi mount -t proc /proc /rescue/proc mount -t sysfs /sys /rescue/sys mount -o bind /dev /rescue/dev mount -o bind /dev/pts /rescue/dev/pts mount -o bind /run /rescue/run chroot /rescue
排查 chroot 环境问题。
使用以下命令退出 chroot 环境:
exit umount /rescue/proc/ umount /rescue/sys/ umount /rescue/dev/pts umount /rescue/dev/ umount /rescue/run cd / umount /rescue/boot/efi umount /rescue
注意
如果收到错误消息“无法卸载 /rescue”,请将
-l
该选项添加到umount
命令,例如umount -l /rescue
。
从救援 VM 中分离磁盘,并使用原始 VM 执行磁盘交换。
启动原始 VM 并检查其连接。
RHEL/Centos/Oracle 6.x && Oracle 8.x && RHEL/Centos 7.x 与 RAW 分区
停止或解除分配受影响的 VM。
使用托管磁盘在同一资源组(RSG)和位置中创建相同 OS 版本的救援 VM 映像。
使用Azure 门户拍摄受影响虚拟机 OS 磁盘的快照。
从 OS 磁盘的快照创建磁盘,并将其附加到救援 VM。
创建磁盘后,对救援 VM 中的 chroot 环境进行故障排除。
使用以下命令以根用户身份访问 VM:
sudo su -
使用查找磁盘
dmesg
(用于发现新磁盘的方法可能有所不同)。 以下示例用于dmesg
筛选 SCSI 磁盘:dmesg | grep SCSI
命令输出类似于以下示例。 在此示例中, /dev/sdc 磁盘是所需的内容:
[ 0.294784] SCSI subsystem initialized [ 0.573458] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) [ 7.110271] sd 2:0:0:0: [sda] Attached SCSI disk [ 8.079653] sd 3:0:1:0: [sdb] Attached SCSI disk [ 1828.162306] sd 5:0:0:0: [sdc] Attached SCSI disk
使用以下命令访问 chroot 环境:
mkdir /rescue mount -o nouuid /dev/sdc2 /rescue mount -o nouuid /dev/sdc1 /rescue/boot/ mount -t proc /proc /rescue/proc mount -t sysfs /sys /rescue/sys mount -o bind /dev /rescue/dev mount -o bind /dev/pts /rescue/dev/pts mount -o bind /run /rescue/run chroot /rescue
排查 chroot 环境问题。
使用以下命令退出 chroot 环境:
exit umount /rescue/proc/ umount /rescue/sys/ umount /rescue/dev/pts umount /rescue/dev/ umount /rescue/run cd / umount /rescue/boot/ umount /rescue
注意
如果收到错误消息“无法卸载 /rescue”,请将
-l
该选项添加到umount
命令,例如umount -l /rescue
。
从救援 VM 中分离磁盘,并使用原始 VM 执行磁盘交换。
启动原始 VM 并检查其连接。
使用 LVM 的 RHEL/Centos 7.x 和 8.X
注意
如果原始 VM 在 OS 磁盘上包括逻辑卷管理器(LVM),请使用映像和 OS 磁盘上的原始分区来创建救援 VM。
停止或解除分配受影响的 VM。
使用托管磁盘在同一资源组(RSG)和位置中创建相同 OS 版本的救援 VM 映像。
使用Azure 门户拍摄受影响虚拟机 OS 磁盘的快照。
从 OS 磁盘的快照创建磁盘,并将其附加到救援 VM。
创建磁盘后,对救援 VM 中的 chroot 环境进行故障排除。
使用以下命令以根用户身份访问 VM:
sudo su -
使用查找磁盘
dmesg
(用于发现新磁盘的方法可能有所不同)。 以下示例用于dmesg
筛选 SCSI 磁盘:dmesg | grep SCSI
命令输出类似于以下示例。 在此示例中, /dev/sdc 磁盘是所需的内容:
[ 0.294784] SCSI subsystem initialized [ 0.573458] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) [ 7.110271] sd 2:0:0:0: [sda] Attached SCSI disk [ 8.079653] sd 3:0:1:0: [sdb] Attached SCSI disk [ 1828.162306] sd 5:0:0:0: [sdc] Attached SCSI disk
使用以下命令激活逻辑卷组:
vgscan --mknodes vgchange -ay lvscan
lsblk
使用命令检索 LVM 名称:lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 64G 0 disk ├─sda1 8:1 0 500M 0 part /boot ├─sda2 8:2 0 63G 0 part / sdb 8:16 0 4G 0 disk └─sdb1 8:17 0 4G 0 part /mnt/resource sdc 8:0 0 64G 0 disk ├─sdc1 8:1 0 500M 0 part ├─sdc2 8:2 0 63G 0 part ├─sdc3 8:3 0 2M 0 part ├─sdc4 8:4 0 63G 0 part ├─rootvg-tmplv 253:0 0 2G 0 lvm ├─rootvg-usrlv 253:1 0 10G 0 lvm ├─rootvg-optlv 253:2 0 2G 0 lvm ├─rootvg-homelv 253:3 0 1G 0 lvm ├─rootvg-varlv 253:4 0 8G 0 lvm └─rootvg-rootlv 253:5 0 2G 0 lvm
使用以下命令准备 chroot dir:
mkdir /rescue mount /dev/mapper/rootvg-rootlv /rescue mount /dev/mapper/rootvg-varlv /rescue/var mount /dev/mapper/rootvg-homelv /rescue/home mount /dev/mapper/rootvg-usrlv /rescue/usr mount /dev/mapper/rootvg-tmplv /rescue/tmp mount /dev/mapper/rootvg-optlv /rescue/opt mount /dev/sdc2 /rescue/boot/ mount /dev/sdc1 /rescue/boot/efi
/rescue/boot/ 和 /rescue/boot/efi 分区可能并不总是位于 /dev/sdc2 或 /dev/sdc1 上。 如果在尝试装载这些分区时遇到错误,请检查 /rescue/etc/fstab 文件,以确定断开的 OS 磁盘中的 /boot 和 /boot/efi 分区的正确设备。 然后,运行
blkid
该命令,并将 /rescue/etc/fstab 文件中的通用唯一标识符(UUID)与命令的blkid
输出进行比较,以确定用于在修复 VM 中装载 /rescue/boot/和 /rescue/boot/efi 的正确设备。如果 rootvg-optlv 卷组不存在,该
mount /dev/mapper/rootvg-optlv /rescue/opt
命令可能会失败。 在这种情况下,可以绕过此命令。使用以下命令访问 chroot 环境:
mount -t proc /proc /rescue/proc mount -t sysfs /sys /rescue/sys mount -o bind /dev /rescue/dev mount -o bind /dev/pts /rescue/dev/pts mount -o bind /run /rescue/run chroot /rescue
排查 chroot 环境问题。
使用以下命令退出 chroot 环境:
exit umount /rescue/proc/ umount /rescue/sys/ umount /rescue/dev/pts umount /rescue/dev/ umount /rescue/run cd / umount /rescue/boot/efi umount /rescue/boot umount /rescue/home umount /rescue/var umount /rescue/usr umount /rescue/tmp umount /rescue/opt umount /rescue
注意
如果收到错误消息“无法卸载 /rescue”,请将
-l
该选项添加到umount
命令,例如umount -l /rescue
。
从救援 VM 中分离磁盘,并使用原始 VM 执行磁盘交换。
启动原始 VM 并检查其连接。
使用相同的 LVM 映像
注意
如果需要使用相同的 LVM 映像部署救援 VM,则需要使用 LVM 修改救援 VM 的某些方面。
以下命令将在为恢复操作临时创建的恢复/救援 VM 上执行。
使用以下命令在附加要救援的磁盘之前检查磁盘的状态:
sudo lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 vfat 93DA-8C20 /boot/efi ├─sda2 xfs d5da486e-fdfe-4ad8-bc01-aa72b91fd47d /boot ├─sda3 └─sda4 LVM2_member pdSI2Q-ZEzV-oT6P-R2JG-ZW3h-cmnf-iRN6pU ├─rootvg-tmplv xfs 9098eb05-0176-4997-8132-9152a7bef207 /tmp ├─rootvg-usrlv xfs 2f9ff36c-742d-4914-b463-d4152801b95d /usr ├─rootvg-optlv xfs aeacea8e-3663-4569-af25-c52357f8a0a3 /opt ├─rootvg-homelv xfs a79e43dc-7adc-41b4-b6e1-4e6b033b15c0 /home ├─rootvg-varlv xfs c7cb68e9-7865-4187-b3bd-e9a869779d86 /var └─rootvg-rootlv xfs d8dc4d62-ada5-4952-a0d9-1bce6cb6f809 / sdb └─sdb1 ext4 e72e7c2c-db27-4a73-a97e-01d63d21ccf8 /mnt
附加要作为数据驱动器进行救援的磁盘。
使用以下命令再次检查磁盘:
sudo lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 vfat 93DA-8C20 /boot/efi ├─sda2 xfs d5da486e-fdfe-4ad8-bc01-aa72b91fd47d /boot ├─sda3 └─sda4 LVM2_member pdSI2Q-ZEzV-oT6P-R2JG-ZW3h-cmnf-iRN6pU ├─rootvg-tmplv xfs 9098eb05-0176-4997-8132-9152a7bef207 /tmp ├─rootvg-usrlv xfs 2f9ff36c-742d-4914-b463-d4152801b95d /usr ├─rootvg-optlv xfs aeacea8e-3663-4569-af25-c52357f8a0a3 /opt ├─rootvg-homelv xfs a79e43dc-7adc-41b4-b6e1-4e6b033b15c0 /home ├─rootvg-varlv xfs c7cb68e9-7865-4187-b3bd-e9a869779d86 /var └─rootvg-rootlv xfs d8dc4d62-ada5-4952-a0d9-1bce6cb6f809 / sdb └─sdb1 ext4 e72e7c2c-db27-4a73-a97e-01d63d21ccf8 /mnt sdc ├─sdc1 vfat 93DA-8C20 ├─sdc2 xfs d5da486e-fdfe-4ad8-bc01-aa72b91fd47d ├─sdc3 └─sdc4 LVM2_member pdSI2Q-ZEzV-oT6P-R2JG-ZW3h-cmnf-iRN6pU
命令输出不会立即显示 LVM 结构。
使用以下命令查看物理 LVM 分区:
sudo pvs
此输出显示有关重复物理卷(PVs)的警告:
WARNING: Not using lvmetad because duplicate PVs were found. WARNING: Use multipath or vgimportclone to resolve duplicate PVs? WARNING: After duplicates are resolved, run "pvscan --cache" to enable lvmetad. WARNING: Not using device /dev/sdc4 for PV pdSI2Q-ZEzV-oT6P-R2JG-ZW3h-cmnf-iRN6pU. WARNING: PV pdSI2Q-ZEzV-oT6P-R2JG-ZW3h-cmnf-iRN6pU prefers device /dev/sda4 because device is used by LV. PV VG Fmt Attr PSize PFree /dev/sda4 rootvg lvm2 a-- <63.02g <38.02g
vmimportclone
使用命令使用其他名称从数据驱动器导入 rootvg。此命令更改 PV 的 UUID,并激活它:
sudo vgimportclone -n rescuemevg /dev/sdc4
WARNING: Not using device /dev/sdc4 for PV <PV>. WARNING: PV pdSI2Q-ZEzV-oT6P-R2JG-ZW3h-cmnf-iRN6pU prefers device /dev/sda4 because device is used by LV.
sudo vgchange -a y rescuemevg
6 logical volume(s) in volume group "rescuemevg" now active
使用以下命令验证名称更改:
sudo lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 vfat 93DA-8C20 /boot/efi ├─sda2 xfs d5da486e-fdfe-4ad8-bc01-aa72b91fd47d /boot ├─sda3 └─sda4 LVM2_member pdSI2Q-ZEzV-oT6P-R2JG-ZW3h-cmnf-iRN6pU ├─rootvg-tmplv xfs 9098eb05-0176-4997-8132-9152a7bef207 /tmp ├─rootvg-usrlv xfs 2f9ff36c-742d-4914-b463-d4152801b95d /usr ├─rootvg-optlv xfs aeacea8e-3663-4569-af25-c52357f8a0a3 /opt ├─rootvg-homelv xfs a79e43dc-7adc-41b4-b6e1-4e6b033b15c0 /home ├─rootvg-varlv xfs c7cb68e9-7865-4187-b3bd-e9a869779d86 /var └─rootvg-rootlv xfs d8dc4d62-ada5-4952-a0d9-1bce6cb6f809 / sdb └─sdb1 ext4 e72e7c2c-db27-4a73-a97e-01d63d21ccf8 /mnt sdc ├─sdc1 vfat 93DA-8C20 ├─sdc2 xfs d5da486e-fdfe-4ad8-bc01-aa72b91fd47d ├─sdc3 └─sdc4 LVM2_member BbZsAT-5oOK-nITn-bHFW-IVyS-y0O3-93oDes ├─rescuemevg-tmplv xfs 9098eb05-0176-4997-8132-9152a7bef207 ├─rescuemevg-usrlv xfs 2f9ff36c-742d-4914-b463-d4152801b95d ├─rescuemevg-optlv xfs aeacea8e-3663-4569-af25-c52357f8a0a3 ├─rescuemevg-homelv xfs a79e43dc-7adc-41b4-b6e1-4e6b033b15c0 ├─rescuemevg-varlv xfs c7cb68e9-7865-4187-b3bd-e9a869779d86 └─rescuemevg-rootlv xfs d8dc4d62-ada5-4952-a0d9-1bce6cb6f809
使用以下命令重命名救援 VM 的 rootvg:
sudo vgrename rootvg oldvg
Volume group "rootvg" successfully renamed to "oldvg"
使用以下命令检查磁盘:
sudo lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 vfat 93DA-8C20 /boot/efi ├─sda2 xfs d5da486e-fdfe-4ad8-bc01-aa72b91fd47d /boot ├─sda3 └─sda4 LVM2_member pdSI2Q-ZEzV-oT6P-R2JG-ZW3h-cmnf-iRN6pU ├─oldvg-tmplv xfs 9098eb05-0176-4997-8132-9152a7bef207 /tmp ├─oldvg-usrlv xfs 2f9ff36c-742d-4914-b463-d4152801b95d /usr ├─oldvg-optlv xfs aeacea8e-3663-4569-af25-c52357f8a0a3 /opt ├─oldvg-homelv xfs a79e43dc-7adc-41b4-b6e1-4e6b033b15c0 /home ├─oldvg-varlv xfs c7cb68e9-7865-4187-b3bd-e9a869779d86 /var └─oldvg-rootlv xfs d8dc4d62-ada5-4952-a0d9-1bce6cb6f809 / sdb └─sdb1 ext4 e72e7c2c-db27-4a73-a97e-01d63d21ccf8 /mnt sdc ├─sdc1 vfat 93DA-8C20 ├─sdc2 xfs d5da486e-fdfe-4ad8-bc01-aa72b91fd47d ├─sdc3 └─sdc4 LVM2_member BbZsAT-5oOK-nITn-bHFW-IVyS-y0O3-93oDes ├─rescuemevg-tmplv xfs 9098eb05-0176-4997-8132-9152a7bef207 ├─rescuemevg-usrlv xfs 2f9ff36c-742d-4914-b463-d4152801b95d ├─rescuemevg-optlv xfs aeacea8e-3663-4569-af25-c52357f8a0a3 ├─rescuemevg-homelv xfs a79e43dc-7adc-41b4-b6e1-4e6b033b15c0 ├─rescuemevg-varlv xfs c7cb68e9-7865-4187-b3bd-e9a869779d86 └─rescuemevg-rootlv xfs d8dc4d62-ada5-4952-a0d9-1bce6cb6f809
装载来自数据驱动器的文件系统。
使用
xfs
时,请指定-o nouuid
选项以避免与 UUID 冲突,并装载所需的文件系统来执行 chroot。 此选项在文件系统中ext4
不可用,因此需要从此类方案中的命令中删除此选项:sudo mkdir /rescue sudo mount -o nouuid /dev/mapper/rescuemevg-rootlv /rescue sudo mount -o nouuid /dev/mapper/rescuemevg-homelv /rescue/home sudo mount -o nouuid /dev/mapper/rescuemevg-optlv /rescue/opt sudo mount -o nouuid /dev/mapper/rescuemevg-tmplv /rescue/tmp sudo mount -o nouuid /dev/mapper/rescuemevg-usrlv /rescue/usr sudo mount -o nouuid /dev/mapper/rescuemevg-varlv /rescue/var sudo mount -o nouuid /dev/sdc2 /rescue/boot sudo mount /dev/sdc1 /rescue/boot/efi sudo mount -t proc /proc /rescue/proc sudo mount -t sysfs /sys /rescue/sys sudo mount -o bind /dev /rescue/dev sudo mount -o bind /dev/pts /rescue/dev/pts sudo mount -o bind /run /rescue/run
/rescue/boot/ 和 /rescue/boot/efi 分区可能并不总是位于 /dev/sdc2 或 /dev/sdc1 上。 如果在尝试装载这些分区时遇到错误,请检查 /rescue/etc/fstab 文件,以确定断开的 OS 磁盘中的 /boot 和 /boot/efi 分区的正确设备。 然后,运行
blkid
该命令并将 /rescue/etc/fstab 文件中的 UUID 与命令的blkid
输出进行比较,以确定用于在修复 VM 中装载 /rescue/boot/ 和 /rescue/boot/efi 的正确设备。 重复的 UUID 可能会出现在输出中。 在此方案中,装载与步骤 5 中的设备信匹配的分区。 在本部分的示例中,应装载的正确分区为 /dev/sdc。 dev/sda 表示当前正在使用的操作系统,应忽略。使用以下命令验证装载:
sudo lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 vfat 93DA-8C20 /boot/efi ├─sda2 xfs d5da486e-fdfe-4ad8-bc01-aa72b91fd47d /boot ├─sda3 └─sda4 LVM2_member pdSI2Q-ZEzV-oT6P-R2JG-ZW3h-cmnf-iRN6pU ├─oldvg-tmplv xfs 9098eb05-0176-4997-8132-9152a7bef207 /tmp ├─oldvg-usrlv xfs 2f9ff36c-742d-4914-b463-d4152801b95d /usr ├─oldvg-optlv xfs aeacea8e-3663-4569-af25-c52357f8a0a3 /opt ├─oldvg-homelv xfs a79e43dc-7adc-41b4-b6e1-4e6b033b15c0 /home ├─oldvg-varlv xfs c7cb68e9-7865-4187-b3bd-e9a869779d86 /var └─oldvg-rootlv xfs d8dc4d62-ada5-4952-a0d9-1bce6cb6f809 / sdb └─sdb1 ext4 e72e7c2c-db27-4a73-a97e-01d63d21ccf8 /mnt sdc ├─sdc1 vfat 93DA-8C20 /rescue/boot/efi ├─sdc2 xfs d5da486e-fdfe-4ad8-bc01-aa72b91fd47d /rescue/boot ├─sdc3 └─sdc4 LVM2_member BbZsAT-5oOK-nITn-bHFW-IVyS-y0O3-93oDes ├─rescuemevg-tmplv xfs 9098eb05-0176-4997-8132-9152a7bef207 /rescue/tmp ├─rescuemevg-usrlv xfs 2f9ff36c-742d-4914-b463-d4152801b95d /rescue/usr ├─rescuemevg-optlv xfs aeacea8e-3663-4569-af25-c52357f8a0a3 /rescue/opt ├─rescuemevg-homelv xfs a79e43dc-7adc-41b4-b6e1-4e6b033b15c0 /rescue/home ├─rescuemevg-varlv xfs c7cb68e9-7865-4187-b3bd-e9a869779d86 /rescue/var └─rescuemevg-rootlv xfs d8dc4d62-ada5-4952-a0d9-1bce6cb6f809 /rescue
使用以下命令使用 chroot:
sudo chroot /rescue/
使用以下命令验证 chroot 环境的装载“内部”:
sudo lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 vfat 93DA-8C20 ├─sda2 xfs d5da486e-fdfe-4ad8-bc01-aa72b91fd47d ├─sda3 └─sda4 LVM2_member pdSI2Q-ZEzV-oT6P-R2JG-ZW3h-cmnf-iRN6pU ├─oldvg-tmplv xfs 9098eb05-0176-4997-8132-9152a7bef207 ├─oldvg-usrlv xfs 2f9ff36c-742d-4914-b463-d4152801b95d ├─oldvg-optlv xfs aeacea8e-3663-4569-af25-c52357f8a0a3 ├─oldvg-homelv xfs a79e43dc-7adc-41b4-b6e1-4e6b033b15c0 ├─oldvg-varlv xfs c7cb68e9-7865-4187-b3bd-e9a869779d86 └─oldvg-rootlv xfs d8dc4d62-ada5-4952-a0d9-1bce6cb6f809 sdb └─sdb1 ext4 e72e7c2c-db27-4a73-a97e-01d63d21ccf8 sdc ├─sdc1 vfat 93DA-8C20 /boot/efi ├─sdc2 xfs d5da486e-fdfe-4ad8-bc01-aa72b91fd47d /boot ├─sdc3 └─sdc4 LVM2_member BbZsAT-5oOK-nITn-bHFW-IVyS-y0O3-93oDes ├─rescuemevg-tmplv xfs 9098eb05-0176-4997-8132-9152a7bef207 /tmp ├─rescuemevg-usrlv xfs 2f9ff36c-742d-4914-b463-d4152801b95d /usr ├─rescuemevg-optlv xfs aeacea8e-3663-4569-af25-c52357f8a0a3 /opt ├─rescuemevg-homelv xfs a79e43dc-7adc-41b4-b6e1-4e6b033b15c0 /home ├─rescuemevg-varlv xfs c7cb68e9-7865-4187-b3bd-e9a869779d86 /var └─rescuemevg-rootlv xfs d8dc4d62-ada5-4952-a0d9-1bce6cb6f809 /
现在, rescuemevg-rootlv 是装载的 /。
使用以下命令重命名卷组(VG),使其保持一致。 重命名 VG 可避免在重新生成 initrd 并在原始 VM 上再次启动磁盘时遇到问题。
sudo vgrename rescuemevg rootvg
Volume group "rescuemevg" successfully renamed to "rootvg"
使用以下命令验证更改:
sudo lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 vfat 93DA-8C20 ├─sda2 xfs d5da486e-fdfe-4ad8-bc01-aa72b91fd47d ├─sda3 └─sda4 LVM2_member pdSI2Q-ZEzV-oT6P-R2JG-ZW3h-cmnf-iRN6pU ├─oldvg-tmplv xfs 9098eb05-0176-4997-8132-9152a7bef207 ├─oldvg-usrlv xfs 2f9ff36c-742d-4914-b463-d4152801b95d ├─oldvg-optlv xfs aeacea8e-3663-4569-af25-c52357f8a0a3 ├─oldvg-homelv xfs a79e43dc-7adc-41b4-b6e1-4e6b033b15c0 ├─oldvg-varlv xfs c7cb68e9-7865-4187-b3bd-e9a869779d86 └─oldvg-rootlv xfs d8dc4d62-ada5-4952-a0d9-1bce6cb6f809 sdb └─sdb1 ext4 e72e7c2c-db27-4a73-a97e-01d63d21ccf8 sdc ├─sdc1 vfat 93DA-8C20 /boot/efi ├─sdc2 xfs d5da486e-fdfe-4ad8-bc01-aa72b91fd47d /boot ├─sdc3 └─sdc4 LVM2_member BbZsAT-5oOK-nITn-bHFW-IVyS-y0O3-93oDes ├─rootvg-tmplv xfs 9098eb05-0176-4997-8132-9152a7bef207 /tmp ├─rootvg-usrlv xfs 2f9ff36c-742d-4914-b463-d4152801b95d /usr ├─rootvg-optlv xfs aeacea8e-3663-4569-af25-c52357f8a0a3 /opt ├─rootvg-homelv xfs a79e43dc-7adc-41b4-b6e1-4e6b033b15c0 /home ├─rootvg-varlv xfs c7cb68e9-7865-4187-b3bd-e9a869779d86 /var └─rootvg-rootlv xfs d8dc4d62-ada5-4952-a0d9-1bce6cb6f809 /
继续执行所需的活动来营救 OS。 这些活动可能包括重新生成 initramfs 或 GRUB 配置。
使用以下命令退出 chroot 环境:
sudo exit
卸载数据磁盘并从救援 VM 中分离数据磁盘,并使用以下命令执行与原始 VM 的磁盘交换:
umount /rescue/run/ umount /rescue/dev/pts/ umount /rescue/dev/ umount /rescue/sys/ umount /rescue/proc umount /rescue/boot/efi umount /rescue/boot umount /rescue/var umount /rescue/usr umount /rescue/tmp umount /rescue/opt umount /rescue/home umount /rescue
启动原始 VM 并验证其功能。
Oracle 7.x
停止或解除分配受影响的 VM。
使用托管磁盘在同一资源组(RSG)和位置中创建相同 OS 版本的救援 VM 映像。
使用Azure 门户拍摄受影响虚拟机 OS 磁盘的快照。
从 OS 磁盘的快照创建磁盘,并将其附加到救援 VM。
创建磁盘后,对救援 VM 中的 chroot 环境进行故障排除。
使用以下命令以根用户身份访问 VM:
sudo su -
使用
dmesg
(用于发现新磁盘的方法可能有所不同) 查找磁盘。 以下示例用于dmesg
筛选 SCSI 磁盘:dmesg | grep SCSI
命令输出类似于以下示例。 在此示例中,
/dev/sdc
磁盘是所需的:[ 0.294784] SCSI subsystem initialized [ 0.573458] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) [ 7.110271] sd 2:0:0:0: [sda] Attached SCSI disk [ 8.079653] sd 3:0:1:0: [sdb] Attached SCSI disk [ 1828.162306] sd 5:0:0:0: [sdc] Attached SCSI disk
使用以下命令访问 chroot 环境:
mkdir /rescue mount -o nouuid /dev/sdc2 /rescue mount -o nouuid /dev/sdc1 /rescue/boot/ mount /dev/sdc15 /rescue/boot/efi mount -t proc /proc /rescue/proc mount -t sysfs /sys /rescue/sys mount -o bind /dev /rescue/dev mount -o bind /dev/pts /rescue/dev/pts mount -o bind /run /rescue/run chroot /rescue
排查 chroot 环境问题。
使用以下命令退出 chroot 环境:
exit umount /rescue/proc/ umount /rescue/sys/ umount /rescue/dev/pts umount /rescue/dev/ umount /rescue/run umount /rescue/boot/efi umount /rescue/boot umount /rescue
注意
如果收到错误消息“无法卸载 /rescue”,请将
-l
该选项添加到umount
命令,例如umount -l /rescue
。
从救援 VM 中分离磁盘,并使用原始 VM 执行磁盘交换。
启动原始 VM 并检查其连接。
SUSE-SLES 12 SP4、SUSE-SLES 12 SP4 for SAP && ## SUSE-SLES 15 SP1、SUSE-SLES 15 SP1 for SAP
停止或解除分配受影响的 VM。
使用托管磁盘在同一资源组(RSG)和位置中创建相同 OS 版本的救援 VM 映像。
使用Azure 门户拍摄受影响虚拟机 OS 磁盘的快照。
从 OS 磁盘的快照创建磁盘,并将其附加到救援 VM。
创建磁盘后,对救援 VM 中的 chroot 环境进行故障排除。
使用以下命令以根用户身份访问 VM:
sudo su -
使用查找磁盘
dmesg
(用于发现新磁盘的方法可能有所不同)。 以下示例用于dmesg
筛选 SCSI 磁盘:dmesg | grep SCSI
命令输出类似于以下示例。 在此示例中,
/dev/sdc
磁盘是所需的:[ 0.294784] SCSI subsystem initialized [ 0.573458] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) [ 7.110271] sd 2:0:0:0: [sda] Attached SCSI disk [ 8.079653] sd 3:0:1:0: [sdb] Attached SCSI disk [ 1828.162306] sd 5:0:0:0: [sdc] Attached SCSI disk
使用以下命令访问 chroot 环境:
mkdir /rescue mount -o nouuid /dev/sdc4 /rescue mount -o nouuid /dev/sdc3 /rescue/boot/ mount /dev/sdc2 /rescue/boot/efi mount -t proc /proc /rescue/proc mount -t sysfs /sys /rescue/sys mount -o bind /dev /rescue/dev mount -o bind /dev/pts /rescue/dev/pts mount -o bind /run /rescue/run chroot /rescue
排查 chroot 环境问题。
使用以下命令退出 chroot 环境:
exit umount /rescue/proc/ umount /rescue/sys/ umount /rescue/dev/pts umount /rescue/dev/ umount /rescue/run umount /rescue/boot/efi umount /rescue/boot umount /rescue
注意
如果收到错误消息“无法卸载 /rescue”,请将
-l
该选项添加到umount
命令,例如umount -l /rescue
。
从救援 VM 中分离磁盘,并使用原始 VM 执行磁盘交换。
启动原始 VM 并检查其连接。
后续步骤
联系我们寻求帮助
如果你有任何疑问或需要帮助,请创建支持请求或联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区。