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:
- Etkilenen VM'yi durdurun.
- VM'nin işletim sistemi diskinden anlık görüntü alın.
- İşletim sistemi diski anlık görüntüsünden bir disk oluşturun.
- Sorun giderme amacıyla yeni işletim sistemi diskini başka bir Linux VM'ye takın ve bağlayın.
- 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.
- Yeni işletim sistemi diskini çıkarın ve sorun giderme VM'sinden çıkarın.
- 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 myVM
gibi 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/fstab
geç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 myResourceGroup
adlı 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 myResourceGroup
adlı 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ı mySnapshot
anlı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 MyTroubleshootVM
ekler:
# 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.
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/sdc
bağlıdır. Ekli diskleri görüntülemek için kullanındmesg
: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/sde
vb. konumunda/dev/sdd
olmalıdır.Mevcut sanal sabit diskinizi bağlamak için bir dizin oluşturun. Aşağıdaki örnek adlı
troubleshootingdisk
bir dizin oluşturur:sudo mkdir /mnt/troubleshootingdisk
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/sdc1
bağ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.
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
Ş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.