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 並檢查其連線能力。
RHEL/Centos 7.x 和 8.X 與 LVM
注意
如果您的原始 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/
使用下列命令確認掛接 「inside」 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 可讓您在重新產生 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 community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。