Aracılığıyla paylaş


Azure CLI ile işletim sistemi diskini bir kurtarma VM'sine ekleyerek Linux VM sorunlarını giderme

Şunlar için geçerlidir: ✔️ Linux VM'leri

Linux sanal makineniz (VM) önyükleme veya disk hatasıyla karşılaşırsa, sanal sabit diskin kendisinde sorun giderme adımları gerçekleştirmeniz gerekebilir. Vm'nin başarıyla önyüklenmesini engelleyen geçersiz bir giriş /etc/fstab yaygın bir örnek olabilir. Bu makalede, hataları düzeltmek için sanal sabit diskinizi başka bir Linux VM'ye bağlamak için Azure CLI'nin nasıl kullanılacağı ve ardından özgün VM'nizin nasıl yeniden oluşturulacağı açıklanır.

Kurtarma işlemine genel bakış

Sorun giderme işlemi aşağıdaki gibidir:

  1. Etkilenen VM'yi durdurun.
  2. VM'nin işletim sistemi diskinden anlık görüntü alın.
  3. İşletim sistemi diski anlık görüntüsünden bir disk oluşturun.
  4. Sorun giderme amacıyla yeni işletim sistemi diskini başka bir Linux VM'ye takın ve bağlayın.
  5. Sorun giderme işlemlerini yapacağınız VM'ye bağlanın. Yeni işletim sistemi diskinde sorunları gidermek için dosyaları düzenleyin veya herhangi bir araç çalıştırın.
  6. Yeni işletim sistemi diskini çıkarın ve sorun giderme VM'sinden çıkarın.
  7. Etkilenen VM'nin işletim sistemi diskini değiştirin.

Bu sorun giderme adımlarını gerçekleştirmek için en son Azure CLI'nin yüklü olması ve az login kullanarak bir Azure hesabında oturum açmanız gerekir.

1, 2, 3, 4, 6 ve 7. adımları otomatikleştirmek için VM onarım komutlarını kullanabilirsiniz. Daha fazla belge ve yönergeler için bkz . Azure Sanal Makine onarım komutlarını kullanarak Linux VM'sini onarma.

Önemli

Bu makaledeki betikler yalnızca Yönetilen Disk kullanan VM'ler için geçerlidir.

Aşağıdaki örneklerde parametre adlarını ve myVMgibi myResourceGroup kendi değerlerinizle değiştirin.

Önyükleme sorunlarını belirleme

VM'nizin neden düzgün önyükleme yapılamadığını belirlemek için seri çıkışı inceleyin. Yaygın bir örnek, içinde /etc/fstabgeçersiz bir giriş veya silinen veya taşınan temel sanal sabit disktir.

az vm boot-diagnostics get-boot-log ile önyükleme günlüklerini alın. Aşağıdaki örnek adlı kaynak grubunda myResourceGroupadlı myVM VM'den seri çıkışı alır:

az vm boot-diagnostics get-boot-log --resource-group myResourceGroup --name myVM

VM'nin önyüklemesinin neden başarısız olduğunu belirlemek için seri çıkışı gözden geçirin. Seri çıkış herhangi bir gösterge sağlamıyorsa, sorun giderme VM'sine /var/log bağlı sanal sabit diske sahip olduktan sonra günlük dosyalarını gözden geçirmeniz gerekebilir.

VM’yi durdurma

Aşağıdaki örnek adlı kaynak grubundan myResourceGroupadlı myVM VM'yi durdurur:

az vm stop --resource-group MyResourceGroup --name MyVm

Etkilenen VM'nin işletim sistemi diskinden anlık görüntü alma

Anlık görüntü, VHD'nin tam, salt okunur bir kopyasıdır. Vm'ye eklenemez. Sonraki adımda bu anlık görüntüden bir disk oluşturacağız. Aşağıdaki örnek, 'myVM' adlı VM'nin işletim sistemi diskinden adlı mySnapshot bir anlık görüntü oluşturur.

#Get the OS disk Id 
$osdiskid=(az vm show -g myResourceGroup -n myVM --query "storageProfile.osDisk.managedDisk.id" -o tsv)

#creates a snapshot of the disk
az snapshot create --resource-group myResourceGroupDisk --source "$osdiskid" --name mySnapshot

Anlık görüntüden disk oluşturma

Bu betik, adlı mySnapshotanlık görüntüden adlı myOSDisk bir yönetilen disk oluşturur.

#Provide the name of your resource group
$resourceGroup="myResourceGroup"

#Provide the name of the snapshot that will be used to create Managed Disks
$snapshot="mySnapshot"

#Provide the name of the Managed Disk
$osDisk="myNewOSDisk"

#Provide the size of the disks in GB. It should be greater than the VHD file size.
$diskSize=128

#Provide the storage type for Managed Disk. Premium_LRS or Standard_LRS.
$storageType="Premium_LRS"

#Provide the OS type
$osType="linux"

#Get the snapshot Id 
$snapshotId=(az snapshot show --name $snapshot --resource-group $resourceGroup --query id -o tsv)

# Create a new Managed Disks using the snapshot Id.

az disk create --resource-group $resourceGroup --name $osDisk --sku $storageType --size-gb $diskSize --source $snapshotId

Kaynak grubu ve kaynak anlık görüntüsü aynı bölgede değilse, komutunu çalıştırdığınızda az disk create"Kaynak bulunamadı" hatasını alırsınız. Bu durumda, diski kaynak anlık görüntüyle aynı bölgede oluşturmayı belirtmeniz --location <region> gerekir.

Artık özgün işletim sistemi diskinin bir kopyasına sahipsiniz. Sorun giderme amacıyla bu yeni diski başka bir Windows VM'sine bağlayabilirsiniz.

Yeni sanal sabit diski başka bir VM'ye ekleme

Sonraki birkaç adımda sorun giderme amacıyla başka bir VM kullanacaksınız. Diskin içeriğine göz atmak ve bunları düzenlemek için diski bu sorun giderme VM'sine eklersiniz. Bu işlem, yapılandırma hatalarını düzeltmenize veya ek uygulama veya sistem günlük dosyalarını gözden geçirmenize olanak tanır.

Bu betik diski myNewOSDisk VM'ye MyTroubleshootVMekler:

# Get ID of the OS disk that you just created.
$myNewOSDiskid=(az disk show -g $resourceGroup -n $osDisk --query id -o tsv)

# Attach the disk to the troubleshooting VM
az vm disk attach --disk $myNewOSDiskid --resource-group $resourceGroup --size-gb $diskSize --sku $storageType --vm-name MyTroubleshootVM

Ekli veri diskini bağlama

Not

Aşağıdaki örneklerde Ubuntu VM'sinde gerekli adımlar ayrıntılı olarak verilmiştir. Red Hat Enterprise Linux veya SUSE gibi farklı bir Linux dağıtımı kullanıyorsanız günlük dosyası konumları ve mount komutları biraz farklı olabilir. Komutlardaki uygun değişiklikler için özel dağıtımınız için belgelere bakın.

  1. Uygun kimlik bilgilerini kullanarak sorun giderme VM'nize SSH ekleyin. Bu disk sorun giderme VM'nize bağlı ilk veri diskiyse, disk büyük olasılıkla öğesine /dev/sdcbağlıdır. Ekli diskleri görüntülemek için kullanın dmesg :

    dmesg | grep SCSI
    

    Çıktı aşağıdaki örneğe benzer:

    [    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
    

    Yukarıdaki örnekte işletim sistemi diski konumundadır /dev/sda ve her VM için sağlanan geçici disk konumundadır /dev/sdb. Birden çok veri diskin varsa, bu diskler , /dev/sdevb. konumunda /dev/sddolmalıdır.

  2. Mevcut sanal sabit diskinizi bağlamak için bir dizin oluşturun. Aşağıdaki örnek adlı troubleshootingdiskbir dizin oluşturur:

    sudo mkdir /mnt/troubleshootingdisk
    
  3. Mevcut sanal sabit diskinizde birden çok bölüm varsa, gerekli bölümü bağlayın. Aşağıdaki örnek, konumundaki ilk birincil bölümü /dev/sdc1bağlar:

    sudo mount /dev/sdc1 /mnt/troubleshootingdisk
    

    Not

    En iyi yöntem, sanal sabit diskin evrensel benzersiz tanımlayıcısını (UUID) kullanarak Azure'daki VM'lere veri diskleri bağlamaktır. Bu kısa sorun giderme senaryosu için, sanal sabit diski UUID kullanarak bağlamak gerekli değildir. Ancak normal kullanım altında, UUID yerine cihaz adını kullanarak sanal sabit diskleri bağlamak için düzenleme /etc/fstab yapmak VM'nin önyüklenmesinin başarısız olmasına neden olabilir.

Yeni işletim sistemi diskinde sorunları düzeltme

Mevcut sanal sabit disk takılı olduğunda, artık gerekli bakım ve sorun giderme adımlarını gerçekleştirebilirsiniz. Sorunları giderdikten sonra aşağıdaki adımlarla devam edin.

Yeni işletim sistemi diskini çıkarma ve ayırma

Hatalarınız çözümlendikten sonra mevcut sanal sabit diski çıkarın ve sorun giderme VM'nizden çıkarın. Sanal sabit diski sorun giderme VM'sine ekli kira serbest bırakıncaya kadar sanal sabit diskinizi başka bir VM ile kullanamazsınız.

  1. SSH oturumundan sorun giderme VM'nize var olan sanal sabit diski çıkarın. Önce bağlama noktanızın üst dizinini değiştirin:

    cd /
    

    Şimdi mevcut sanal sabit diski çıkarın. Aşağıdaki örnek, konumundaki cihazı /dev/sdc1çıkartır:

    sudo umount /dev/sdc1
    
  2. Şimdi sanal sabit diski VM'den ayır. Sorun giderme VM'nize SSH oturumundan çıkın:

    az vm disk detach -g MyResourceGroup --vm-name MyTroubleShootVm --name myNewOSDisk
    

Etkilenen VM'nin işletim sistemi diskini değiştirme

İşletim sistemi disklerini değiştirmek için Azure CLI'yi kullanabilirsiniz. VM'yi silmeniz ve yeniden oluşturmanız gerekmez.

Bu örnek adlı myVM VM'yi durdurur ve adlı myNewOSDisk diski yeni işletim sistemi diski olarak atar.

# Stop the affected VM
az vm stop -n myVM -g myResourceGroup

# Get ID of the OS disk that is repaired.
$myNewOSDiskid=(az disk show -g $resourceGroup -n $osDisk --query id -o tsv)

# Change the OS disk of the affected VM to "myNewOSDisk"
az vm update -g myResourceGroup -n myVM --os-disk $myNewOSDiskid

# Start the VM
az vm start -n myVM -g myResourceGroup

Sonraki adımlar

VM'nize bağlanırken sorun yaşıyorsanız bkz . Azure VM'sine SSH bağlantılarında sorun giderme. VM'nizde çalışan uygulamalara erişmeyle ilgili sorunlar için bkz . Linux VM'sinde uygulama bağlantısı sorunlarını giderme.

Yardım için bizimle iletişim kurun

Sorularınız varsa veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteğine sorun. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.