Aracılığıyla paylaş


Fstab hataları nedeniyle Linux VM önyükleme sorunlarını giderme

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

Not

Bu makalede başvuruda bulunan CentOS bir Linux dağıtımıdır ve Kullanım Süresi 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, belirli dosya sistemlerinin sistem önyükleme işlemi sırasında düzenli olarak algılandığı ve 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çenek olmadan nofail eklenmemiş bir cihaz için bir girdi var.
  • fstab yapılandırmasında yanlış giriş.

fstab sorunlarını tanımlama

Azure portalındaki [Önyükleme tanılaması] (/azure/virtual-machines/boot-diagnostics#boot-diagnostics-view) dikey penceresindeki seri günlükte VM'nin geçerli önyükleme durumunu denetleyin. VM Acil Durum Modunda olacaktır. Aşağıdaki örneğe benzer 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. Azure portalından VM'nin seri konsoluna 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 yönetmeyi göz önünde bulundurmanız 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 girdilerin bölümlerinde 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, fstab yapılandırmasını yeniden çalıştırır ve mevcut söz dizimi veya giriş hatalarını kullanıcılara 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üzeltmesi 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şlatan "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 bölümünde açıklanan VM onarım uzantısının bir parçasıdır. ALAR, sorunlar dahil olmak üzere /etc/fstab birden çok onarım senaryosunun otomasyonlarını kapsar.

ALAR betikleri, onarım uzantısı run komutunu ve --run-id seçeneğini kullanır. Otomatik kurtarma için betik kimliği: linux-alar2. Fstab hatalarını çevrimdışı ALAR yaklaşımıyla 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şmesi gerekir.

fstab onarım betiği, özgün dosyanın yedeğini alır ve /etc/fstab dosyasındaki bir sistemi önyüklemek için gerekli olmayan satırları ayıklar. İş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'si az vm repair create oluşturun.
  • Kurtarma VM'sindeki ekli işletim sistemi diskinin dosya sistemlerine bağlanmak ve chroot uygulamak için ayrıntılı chroot yönergelerini izleyin.
  • Ardından, yukarıdaki fstab sorun giderme adımlarını izleyin.
  • Değişiklikler uygulandıktan sonra komut, az vm repair restore özgün VM ile otomatik işletim sistemi diski değişimi gerçekleştirmek için 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 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.