Linux 救援 VM 中的 Chroot 環境
注意事項
本文中參考的 CentOS 是 Linux 發行版,並會到達生命周期結束 (EOL) 。 請考慮您的使用並據以規劃。 如需詳細資訊,請 參閱 CentOS 生命週期結束指引。
本文說明如何針對Linux中 VM) 的 (虛擬機的Chroot環境進行疑難解答。
Ubuntu 16.x && Ubuntu 18.x && Ubuntu 20.04
停止或解除分配受影響的 VM。
使用受控磁碟在相同的資源群組和位置中,建立相同一代、相同 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 /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 中裝載 /recovery/boot/ 和 /recovery/boot/efi 的正確裝置。mount /dev/mapper/rootvg-optlv /rescue/opt
如果 rootvg-optlv 磁碟區群組不存在,命令可能會失敗。 在此情況下,您可以略過此命令。使用下列命令存取 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
此輸出會顯示有關複製實體磁碟區 (PV) 的警告:
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
並將 /recovery/etc/fstab 檔案中的 UUID 與命令的blkid
輸出進行比較,以判斷在修復 VM 中掛接 /recovery/boot/ 和 /recovery/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) ,使其保持一致。 重新命名 VG 可防止您在原始 VM 上重新產生 initrd 並再次開機磁碟時遇到問題。
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 /
繼續進行必要的活動以修復作業系統。 這些活動可能包括重新產生 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。
使用受控磁碟在相同的資源群組中建立相同 OS 版本的救援 VM 映像 (RSG) 和位置。
使用 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。
使用受控磁碟在相同的資源群組中建立相同 OS 版本的救援 VM 映像 (RSG) 和位置。
使用 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 意應見反社群。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應