共用方式為


Linux 救援 VM 中的 Chroot 環境

注意事項

本文中參考的 CentOS 是 Linux 發行版,並會到達生命周期結束 (EOL) 。 請考慮您的使用並據以規劃。 如需詳細資訊,請 參閱 CentOS 生命週期結束指引

本文說明如何針對Linux中 VM) 的 (虛擬機的Chroot環境進行疑難解答。

Ubuntu 16.x && Ubuntu 18.x && Ubuntu 20.04

  1. 停止或解除分配受影響的 VM。

  2. 使用受控磁碟在相同的資源群組和位置中,建立相同一代、相同 OS 版本的救援 VM。

  3. 使用 Azure 入口網站 來擷取受影響虛擬機OS磁碟的快照集。

  4. 從OS磁碟的快照集建立磁碟,並將其連結至救援 VM。

  5. 建立磁碟之後,請針對救援 VM 中的 Chroot 環境進行疑難解答。

    1. 使用下列命令,以根使用者身分存取您的 VM:

      sudo su -

    2. 使用 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
      
    3. 使用下列命令來存取 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
      
    4. 針對 Chroot 環境進行疑難解答。

    5. 使用下列命令來結束 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

  6. 將磁碟從救援 VM 中斷連結,並執行與原始 VM 的磁碟交換。

  7. 啟動原始 VM 並檢查其連線能力。

RHEL/Centos/Oracle 6.x && Oracle 8.x && RHEL/Centos 7.x 搭配 RAW 數據分割

  1. 停止或解除分配受影響的 VM。

  2. 在使用受控磁碟的 RSG) 和位置 (相同資源群組中,建立相同 OS 版本的救援 VM 映像。

  3. 使用 Azure 入口網站 來擷取受影響虛擬機OS磁碟的快照集。

  4. 從OS磁碟的快照集建立磁碟,並將其連結至救援 VM。

  5. 建立磁碟之後,請針對救援 VM 中的 Chroot 環境進行疑難解答。

    1. 使用下列命令,以根使用者身分存取您的 VM:

      sudo su -

    2. 使用 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
      
    3. 使用下列命令來存取 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
      
    4. 針對 Chroot 環境進行疑難解答。

    5. 使用下列命令來結束 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

  6. 將磁碟從救援 VM 中斷連結,並執行與原始 VM 的磁碟交換。

  7. 啟動原始 VM 並檢查其連線能力。

RHEL/Centos 7.x & 8.X 搭配 LVM

注意事項

如果您的原始 VM 在 OS 磁碟上包含邏輯磁碟區管理員 (LVM) ,請使用映像搭配 OS 磁碟上的原始磁碟分區來建立救援 VM。

  1. 停止或解除分配受影響的 VM。

  2. 在使用受控磁碟的 RSG) 和位置 (相同資源群組中,建立相同 OS 版本的救援 VM 映像。

  3. 使用 Azure 入口網站 來擷取受影響虛擬機OS磁碟的快照集。

  4. 從OS磁碟的快照集建立磁碟,並將其連結至救援 VM。

  5. 建立磁碟之後,請針對救援 VM 中的 Chroot 環境進行疑難解答。

    1. 使用下列命令,以根使用者身分存取您的 VM:

      sudo su -

    2. 使用 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
      
    3. 使用下列命令來啟用邏輯磁碟區群組:

      vgscan --mknodes
      vgchange -ay
      lvscan
      
    4. 使用 命令 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
      
    5. 使用下列命令來準備 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 磁碟區群組不存在,命令可能會失敗。 在此情況下,您可以略過此命令。

    6. 使用下列命令存取 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
      
    7. 針對 Chroot 環境進行疑難解答。

    8. 使用下列命令來結束 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

  6. 將磁碟從救援 VM 中斷連結,並執行與原始 VM 的磁碟交換。

  7. 啟動原始 VM 並檢查其連線能力。

使用相同的 LVM 映像

注意事項

如果您需要使用相同的 LVM 映射來部署救援 VM,您需要使用 LVM 修改救援 VM 的某些層面。

下列命令將在暫時為復原作業建立的復原/救援 VM 上執行。

  1. 使用下列命令,在連結您要修復的磁碟之前檢查磁碟的狀態:

    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
    
  2. 將您要作為資料磁碟驅動器的磁碟連接。

  3. 使用下列命令再次檢查磁碟:

    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 結構。

  4. 使用下列命令檢視實體 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
    
  5. 使用 命令 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
    
  6. 使用下列命令確認名稱變更:

    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
    
  7. 使用下列命令重新命名救援 VM 的 rootvg

    sudo vgrename rootvg oldvg
    
    Volume group "rootvg" successfully renamed to "oldvg"
    
  8. 使用下列命令檢查磁碟:

    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
    
  9. 掛接來自數據磁碟驅動器的文件系統。

    使用 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/sdcdev/sda 代表目前正在使用的操作系統,應予以忽略。

  10. 使用下列命令來驗證掛接:

    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
    
  11. 使用下列命令來使用 chroot:

    sudo chroot /rescue/
    
  12. 使用下列命令,確認 「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 是掛接在 上的 /

  13. 使用下列命令將磁碟區群組重新命名 (VG) ,使其保持一致。 重新命名 VG 可防止您在原始 VM 上重新產生 initrd 並再次開機磁碟時遇到問題。

    sudo vgrename rescuemevg rootvg
    
    Volume group "rescuemevg" successfully renamed to "rootvg"
    
  14. 使用下列命令來確認變更:

    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   /
    
  15. 繼續進行必要的活動以修復作業系統。 這些活動可能包括重新產生 initramfs 或 GRUB 組態。

  16. 使用下列命令結束 Chroot 環境:

    sudo exit
    
  17. 使用下列命令,將數據磁碟從救援 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
    
  18. 啟動原始 VM 並確認其功能。

Oracle 7.x

  1. 停止或解除分配受影響的 VM。

  2. 使用受控磁碟在相同的資源群組中建立相同 OS 版本的救援 VM 映像 (RSG) 和位置。

  3. 使用 Azure 入口網站 來擷取受影響虛擬機OS磁碟的快照集。

  4. 從OS磁碟的快照集建立磁碟,並將其連結至救援 VM。

  5. 建立磁碟之後,請針對救援 VM 中的 Chroot 環境進行疑難解答。

    1. 使用下列命令,以根使用者身分存取您的 VM:

      sudo su -

    2. 使用 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
      
    3. 使用下列命令來存取 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
      
    4. 針對 Chroot 環境進行疑難解答。

    5. 使用下列命令來結束 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

  6. 將磁碟從救援 VM 中斷連結,並執行與原始 VM 的磁碟交換。

  7. 啟動原始 VM 並檢查其連線能力。

SUSE-SLES 12 SP4、SUSE-SLES 12 SP4 for SAP && ## SUSE-SLES 15 SP1、SUSE-SLES 15 SP1 for SAP

  1. 停止或解除分配受影響的 VM。

  2. 使用受控磁碟在相同的資源群組中建立相同 OS 版本的救援 VM 映像 (RSG) 和位置。

  3. 使用 Azure 入口網站 來擷取受影響虛擬機OS磁碟的快照集。

  4. 從OS磁碟的快照集建立磁碟,並將其連結至救援 VM。

  5. 建立磁碟之後,請針對救援 VM 中的 Chroot 環境進行疑難解答。

    1. 使用下列命令,以根使用者身分存取您的 VM:

      sudo su -

    2. 使用 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
      
    3. 使用下列命令來存取 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
      
    4. 針對 Chroot 環境進行疑難解答。

    5. 使用下列命令來結束 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

  6. 將磁碟從救援 VM 中斷連結,並執行與原始 VM 的磁碟交換。

  7. 啟動原始 VM 並檢查其連線能力。

後續步驟

與我們連絡,以取得說明

如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群