Aracılığıyla paylaş


fstab hatalarından kaynaklanan Linux VM önyükleme sorunlarını giderme

Not

Bu makalede başvuruda bulunan CentOS bir Linux dağıtımıdır ve Kullanım Ömrünün Sonuna (EOL) ulaşacaktır. Kullanımınızı göz önünde bulundurun ve buna göre planlayın. Daha fazla bilgi için bkz. CentOS Kullanım Süresi Sonu kılavuzu.

Linux dosya sistemi tablosu fstab, sistem önyükleme işlemi sırasında belirli dosya sistemlerinin algılandığı ve düzgün bir şekilde bağlandığı kuralları yapılandırmak için tasarlanmış bir yapılandırma tablosudur. Bu makalede, yanlış bir fstab yapılandırmasının önyükleme sorununa yol açabileceği birden çok koşul açıklanır ve sorun giderme yönergeleri sağlanır.

fstab yanlış yapılandırması nedeniyle Sanal Makine Önyüklemesi sorunlarına yol açabilecek birkaç yaygın neden aşağıda listelenmiştir:

  • Geleneksel dosya sistemi adı, dosya sisteminin Evrensel Benzersiz Tanımlayıcısı (UUID) yerine kullanılır.
  • Yanlış bir UUID kullanılıyor.
  • fstab yapılandırmasında seçeneği olmayan nofail eklenmemiş bir cihaz için bir girdi var.
  • fstab yapılandırmasında yanlış giriş.

fstab sorunlarını belirleme

Azure portal [Önyükleme tanılaması] (/azure/virtual-machines/boot-diagnostics#boot-diagnostics-view) dikey penceresindeki seri günlükteki VM'nin geçerli önyükleme durumunu denetleyin. VM Bir Acil Durum Modunda olacaktır. Aşağıdaki örneğe benzeyen günlük girdilerinin Acil Durum Modu durumuna yol açtığını görürsünüz:

[K[[1;31m TIME [0m] Timed out waiting for device dev-incorrect.device.
[[1;33mDEPEND[0m] Dependency failed for /data.
[[1;33mDEPEND[0m] Dependency failed for Local File Systems.
…
Welcome to emergency mode! After logging in, type "journalctl -xb" to viewsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again to boot into default mode.
Give root password for maintenance
(or type Control-D to continue)

Not

"/data", kullanılan bağlama noktasına bir örnektir. Dosya sistemi bağlama noktası için bağımlılık hatası, kullanılan adlara göre farklılık gösterir.

Çözüm

Sorunu çözmenin 2 yolu vardır:

VM'yi Çevrimiçi Onarma

Seri konsolu kullanma

  1. vm'nin seri konsoluna Azure portal bağlanın.
  2. fstab'ı yeniden yapılandırmak için tek kullanıcı moduna el ile erişim gerekir. Adımlar, kullanılan Linux işletim sisteminin türüne ve kök hesaba erişime göre farklılık gösterebilir. Desteklenen her Linux iş ortağı görüntüsü için tek kullanıcı moduna erişmek için tek kullanıcı modu belgelerini izleyin.
Fstab sorun giderme adımları
  1. Vm tek kullanıcı modunda önyüklendikten sonra. Fstab dosyasını açmak için sık kullandığınız metin düzenleyiciyi kullanın.

    vi /etc/fstab
    
  2. içinde /etc/fstablistelenen dosya sistemlerini gözden geçirin. fstab dosyasındaki her satır, VM başlatıldığında bağlanan bir dosya sistemini gösterir. fstab dosyasının söz dizimi hakkında daha fazla bilgi için komutunu çalıştırın man fstab . Önyükleme hatasını gidermek için, bağlanamayan dosya sisteminin girdisini gözden geçirin. Hem yapı hem de içerikte doğru olduğundan emin olmak için her satırı gözden geçirmek iyi bir uygulamadır. Fstab dosyasını doğru şekilde yönetmeyi göz önünde bulundurmak için dikkat edilmesi gereken birkaç nokta şunlardır:

    • Her satırdaki alanlar sekmeler veya boşluklarla ayrılır. Boş satırlar yoksayılır. İlk karakter olarak sayı işareti (#) olan satırlar açıklamalardır. Açıklama satırı fstab dosyasında kalabilir, ancak işlenmez. Satırları kaldırmak yerine emin olmadığınız fstab satırlarına açıklama eklemenizi öneririz.

    • Dosya sistemi bölümünün UUID'sini kullanarak veri disklerini Azure VM'lerine bağlayın. Dosya sisteminin UUID değerini belirlemek için komutunu çalıştırın blkid . Söz dizimi hakkında daha fazla bilgi için komutunu çalıştırın man blkid . fstab dosyasındaki UUID girdisi örneği:

      UUID=<UUID number here>  /data      xfs    defaults,nofail 0  0
      
    • nofail İlgili girdiler için bölümlerde hatalar oluştuktan sonra bile başlatmanın devam edebilmesi için dosya sistemi girdilerindeki (veri diskleri) seçeneğini kullanın. seçeneği, nofail dosya sistemi bozuk olsa veya başlangıçta mevcut olmasa bile VM'nin başlatılmasına yardımcı olur.

  3. Değişiklikleri fstab dosyasına kaydedin.

  4. fstab girişlerinde değişiklik yaptıktan sonra en iyi yöntem olarak kullanın mount -a . Bu işlem fstab yapılandırmasını yeniden çalıştırır ve kullanıcılara mevcut söz dizimi veya giriş hatalarını bildirir.

  5. Söz dizimi ve girdiler doğrulandıktan sonra, aşağıdaki komutu kullanarak vm'yi yeniden başlatın.

    reboot -f
    
  6. Giriş açıklaması veya düzeltme başarılı olursa, sistem portalda bir bash istemine ulaşmalıdır. VM'ye bağlanıp bağlanamayacağınızı denetleyin.

Not

Ayrıca vm'yi yeniden başlatacak "ctrl+x" komutunu da kullanabilirsiniz.

VM'yi çevrimdışı onarma

VM seri konsolu erişimi kullanılamıyorsa, alternatif bir çözüm vm'yi çevrimdışı onarmaktır. Çevrimdışı bir yaklaşım benimsemenin iki yolu vardır:

Azure Linux Otomatik Onarım'ı (ALAR) kullanma

Azure Linux Otomatik Onarım (ALAR) betikleri, Azure Sanal Makine onarım komutlarını kullanarak Linux VM'yi onarma başlığı altında açıklanan VM onarım uzantısının bir parçasıdır. ALAR, sorunlar da dahil olmak üzere /etc/fstab birden çok onarım senaryosunun otomasyonlarını kapsar.

ALAR betikleri, onarım uzantısı run komutunu ve seçeneğini --run-id kullanır. Otomatik kurtarma için script-id: linux-alar2. Çevrimdışı ALAR yaklaşımı aracılığıyla fstab hatalarını otomatikleştirmek için aşağıdaki adımları uygulayın:

az vm repair create --verbose -g centos7 -n cent7 --repair-username rescue --repair-password 'password!234' --copy-disk-name  repairdiskcopy
az vm repair run --verbose -g centos7 -n cent7 --run-id linux-alar2 --parameters fstab --run-on-repair
az vm repair restore --verbose -g centos7 -n cent7

Not

"centos7, vm adı "cent7" ve --copy-disk-name "repairdiskcopy" kaynak grubu adı örnektir ve değerlerin buna göre değiştirilmesi gerekir.

fstab onarım betiği, özgün dosyanın yedeğini alır ve /etc/fstab dosyasında bir sistemin önyüklenmesinin gerekmediği satırları çıkarır. İşletim sistemi başarıyla başlatıldıktan sonra fstab'ı yeniden düzenleyin ve sistemin daha önce yeniden başlatılmasına izin vermeyen hataları düzeltin.

Alternatif olarak, bir onarım sanal makinesi oluşturulduktan sonra, değişiklikler onarım vm'sinde el ile oturum açarak, işletim sistemi diskinin ekli kopyasını bağlayarak ve fstab dosyasında değişiklik yaparak da uygulanabilir. Buradaki adımları izleyin:

  • komutunu kullanarak bir onarım VM'sini az vm repair create oluşturun.
  • Bir kurtarma VM'sindeki ekli işletim sistemi diskinin dosya sistemlerine takmak ve chroot uygulamak için ayrıntılı chroot yönergelerini izleyin.
  • Ardından, yukarıdakiyle aynı fstab sorun giderme adımlarını izleyin.
  • Değişiklikler uygulandıktan sonra, az vm repair restore özgün VM ile otomatik işletim sistemi disk değişimi gerçekleştirmek için komutu kullanılabilir.

El ile Yöntemi Kullanma

Hem seri konsol hem de ALAR yaklaşımı mümkün değilse veya başarısız olursa onarımın el ile gerçekleştirilmesi gerekir. İşletim sistemi diskini bir kurtarma VM'sine el ile eklemek ve işletim sistemi diskini özgün VM'ye geri değiştirmek için buradaki adımları izleyin:

İşletim sistemi diski kurtarma VM'sine başarıyla eklendikten sonra, ekli işletim sistemi diskinin dosya sistemlerine bağlanmak ve chroot uygulamak için ayrıntılı chroot yönergelerini izleyin. Ardından, sorunlu işletim sistemi diskinin fstab dosyasında uygun değişiklikleri yapmak için fstab sorun giderme adımlarını uygulayın.

Yardım için bize ulaşın

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