PROaktif olarak GRUB ve sysrq erişiminiz olması size çok fazla çalışma süresi kazandırabilir
Seri Konsol ve GRUB erişimine sahip olmak, çoğu durumda IaaS Linux Sanal Makinenizin kurtarma sürelerini geliştirir. GRUB, aksi takdirde VM'nizi kurtarmanın daha uzun süreceği kurtarma seçenekleri sunar.
VM kurtarma gerçekleştirmenin nedenleri çok fazladır ve aşağıdaki senaryolara bağlanabilir:
- Bozuk dosya sistemleri/çekirdek/MBR (Ana Önyükleme Kaydı)
- Başarısız çekirdek yükseltmeleri
- Yanlış GRUB çekirdek parametreleri
- Yanlış fstab yapılandırmaları
- Güvenlik duvarı yapılandırmaları
- Kayıp parola
- Mangled sshd yapılandırma dosyaları
- Ağ yapılandırmaları
Burada ayrıntılı olarak açıklandığı gibi diğer birçok senaryo
Azure'da dağıtılan VM'lerinizde GRUB ve Seri konsola erişebildiğinizden emin olun.
Seri Konsol'da yeniyseniz bu bağlantıya bakın.
İpucu
Değişiklik yapmadan önce dosyaların yedeklerini almayı sağlama
GRUB erişiminiz olduğunda Linux VM'nizi nasıl hızlı bir şekilde kurtarabileceğinizi görmek için aşağıdaki videoyu izleyin
Linux VM'lerinin kurtarılmasına yardımcı olacak çeşitli yöntemler vardır. Bulut ortamında bu süreç oldukça zorlu bir süreçtir. Hizmetlerin hızlı bir şekilde kurtarılmasını sağlamak için araçlar ve özelliklerde sürekli ilerleme kaydedilmektedir.
Azure Seri Konsolu ile Linux VM'nizle bir sistemin konsolundaymış gibi etkileşim kurabilirsiniz.
Çekirdeğin nasıl önyüklenecekleri de dahil olmak üzere birçok yapılandırma dosyasını işleyebilirsiniz.
Daha deneyimli Linux/Unix sys yöneticileri, Birçok kurtarma senaryosu için Disk Değiştirme ve VM silmeyi yedekli hale getiren Azure Seri Konsolu aracılığıyla erişilebilen tek kullanıcı ve acil durum modlarını takdir edecektir.
Kurtarma yöntemi, karşılaşılan soruna bağlıdır, örneğin kayıp veya yanlış yerleştirilmiş bir parola Azure portal seçenekleriyle sıfırlanabilir ->Parolayı Sıfırla. Parolayı Sıfırla özelliği Uzantı olarak bilinir ve Linux Konuk aracısı ile iletişim kurar.
Özel Betik gibi diğer uzantılar kullanılabilir, ancak bu seçenekler Linux waagent'ın çalışır durumda ve her zaman geçerli olmayan iyi durumda olmasını gerektirir.
Azure Seri Konsolu ve GRUB erişiminiz olması, parola değişikliğinin veya yanlış yapılandırmanın saatler yerine birkaç dakika içinde düzeltilebileceği anlamına gelir. Birincil çekirdeğinizin bozulması senaryosunda diskte birden çok çekirdeğiniz olması durumunda VM'yi alternatif bir çekirdekten önyüklemeye bile zorlayabilirsiniz.
Kurtarma yöntemlerinin önerilen sırası
Azure Seri Konsolu
Disk Değiştirme – aşağıdakilerden biri kullanılarak otomatikleştirilebilir:
Eski Yöntem
Disk Değiştirme Videosu
Bu videoyu watch GRUB erişiminiz yoksa vm'nizi kurtarmak için disk değiştirme yordamını nasıl kolayca otomatikleştirebileceğinizi görün
Zorluklar
Tüm Linux Azure VM'leri GRUB erişimi için varsayılan olarak yapılandırılmaz ve sysrq komutlarıyla kesintiye uğramak üzere yapılandırılmaz. SLES 11 gibi bazı eski dağıtımlar, Azure Seri Konsolu'nda Oturum Açma istemini görüntüleyecek şekilde yapılandırılmamış
Bu makalede, GRUB'yi nasıl kullanılabilir hale getirebileceğimize ilişkin çeşitli Linux dağıtımlarını ve belge yapılandırmalarını gözden geçireceğiz.
Linux VM'yi SysRq anahtarlarını kabul etmek için yapılandırma
Sysrq anahtarı bazı yeni Linux dağıtımlarında varsayılan olarak etkindir, ancak bazılarında yalnızca belirli SysRq işlevleri için değerleri kabul etmek üzere yapılandırılabilir. Eski dağıtımlarda tamamen devre dışı bırakılmış olabilir.
SysRq özelliği, kilitlenen veya yanıt vermeyen bir VM'yi doğrudan Azure Seri Konsolu'ndan yeniden başlatmak için yararlıdır. AYRıCA GRUB menüsüne erişim kazanma konusunda da yararlıdır; alternatif olarak başka bir portal penceresinden veya ssh oturumundan bir VM'yi yeniden başlatmak geçerli konsol bağlantınızı bırakabilir ve bu nedenle GRUB menüsünü görüntülemek için kullanılan GRUB Zaman Aşımları sona erebilir. VM, yeniden başlatma/güç kesmeye izin veren sysrq veya 128'in tüm işlevlerini etkinleştiren çekirdek parametresi için 1 değerini kabul etmek üzere yapılandırılmalıdır
VM'yi Azure portal SysRq komutları aracılığıyla yeniden başlatmayı kabul edecek şekilde yapılandırmak için kernel.sysrq çekirdek parametresi için 1 değerini ayarlamanız gerekir
Bu yapılandırmanın yeniden başlatmayı kalıcı hale getirmek için sysctl.conf dosyasına bir girdi ekleyin
echo kernel.sysrq = 1 >> /etc/sysctl.conf
Çekirdek parametresini dinamik olarak yapılandırmak için
sysctl -w kernel.sysrq=1
Kök erişiminiz yoksa veya sudo bozuksa, sysrq'yi bir kabuk isteminden yapılandırmak mümkün olmayacaktır.
Azure portal kullanarak sysrq'yi bu senaryoda etkinleştirebilirsiniz. Sudoers.d/waagent dosyasının bozulması veya silinmesi durumunda bu yöntem yararlı olabilir.
Azure portal İşlemleri -> Çalıştırma Komutu -> RunShellScript özelliğinin kullanılması waagent işleminin iyi durumda olmasını gerektirir, ardından sysrq'yi etkinleştirmek için bu komutu ekleyebilirsiniz
sysctl -w kernel.sysrq=1 ; echo kernel.sysrq = 1 >> /etc/sysctl.conf
Burada gösterildiği gibi:
Tamamlandıktan sonra sysrq'ye erişmeyi deneyebilirsiniz ve yeniden başlatmanın mümkün olduğunu görmeniz gerekir.
Yeniden Başlat'ı seçin ve SysRq Komutu Gönder'i seçin
Sistem bunun gibi bir sıfırlama iletisini günlüğe kaydetmelidir
Ubuntu GRUB yapılandırması
Varsayılan olarak, VM önyüklemesi sırasında Esc tuşunu basılı tutarak GRUB'ye erişebilmelisiniz. GRUB menüsü gösterilmezse, bu seçeneklerden birini kullanarak GRUB menüsünü Azure Seri Konsolu'nda ekranda tutabilir ve zorlayabilirsiniz.
Seçenek 1 - GRUB'yi Ekranda görüntülenmeye zorlar
GRUB menüsünü belirtilen ZAMAN AŞıMı için ekranda tutmak için /etc/default/grub.d/50-cloudimg-settings.cfg dosyasını güncelleştirin. GRUB hemen görüntüleneceği için Esc tuşuna basmanız gerekmez.
GRUB_TIMEOUT=5
GRUB_TIMEOUT_STYLE=menu
Seçenek 2 - Önyüklemeden önce Esc tuşuna basılmasına izin verir
/etc/default/grub dosyasında değişiklik yaparak ve Esc tuşuna basmak için 3 saniyelik bir zaman aşımı gözlemleyerek benzer davranışlar yaşanabilir
Şu iki satırı açıklama satırı olarak belirtin:
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true
ve şu satırı ekleyin:
GRUB_TIMEOUT_STYLE=countdown
Ubuntu 12.04
Ubuntu 12.04, seri konsola erişime izin verir ancak etkileşim kurma olanağı sunmaz. Oturum açma: istem görünmüyor
12.04'de oturum açma bilgisi almak için: istemi:
Aşağıdaki metni içeren /etc/init/ttyS0.conf adlı bir dosya oluşturun:
# ttyS0 - getty # # This service maintains a getty on ttyS0 from the point the system is # started until it is shut down again. start on stopped rc RUNLEVEL=[12345] stop on runlevel [!12345] respawn exec /sbin/getty -L 115200 ttyS0 vt102
Başlangıç ekranından getty'yi başlatmasını isteyin
sudo start ttyS0
Ubuntu sürümleri için seri konsolu yapılandırmak için gereken ayarlara buradan ulaşabilirsiniz
Ubuntu Kurtarma Modu
GRUB aracılığıyla Ubuntu için ek kurtarma ve temizleme seçenekleri sağlanır, ancak bu ayarlara yalnızca çekirdek parametrelerini uygun şekilde yapılandırdığınızda erişilebilir. Bu çekirdek önyükleme parametresinin yapılandırılmaması Kurtarma menüsünün Azure Seri Konsolu'na değil Azure Tanılama gönderilmesini zorunlu hale getirir. Aşağıdaki adımları izleyerek Ubuntu Kurtarma Menüsüne erişim elde edebilirsiniz:
ÖNYÜKLEME İşlemi'ni kesme ve GRUB menüsüne erişme
Ubuntu için Gelişmiş Seçenekler'i seçin ve Enter tuşuna basın
Görüntülenen satırı seçin (kurtarma modu) Enter tuşuna basmayın ama "e" tuşuna basın
Çekirdeği yükleyecek satırı bulun ve son nomodeset parametresini console=ttyS0 olarak destination ile değiştirme
linux /boot/vmlinuz-4.15.0-1023-azure root=UUID=21b294f1-25bd-4265-9c4e-d6e4aeb57e97 ro recovery nomodeset
change to
linux /boot/vmlinuz-4.15.0-1023-azure root=UUID=21b294f1-25bd-4265-9c4e-d6e4aeb57e97 ro recovery console=ttyS0
Çekirdeği başlatmak ve yüklemek için Ctrl-x tuşlarına basın. Her şey yolunda giderse, diğer kurtarma seçeneklerini gerçekleştirmeye yardımcı olabilecek bu ek Seçenekleri görürsünüz
Red Hat GRUB yapılandırması
Red Hat 7.4+ GRUB yapılandırması
Bu sürümlerde varsayılan /etc/default/grub yapılandırması yeterli yapılandırıldı
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial"
GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0 earlyprintk=ttyS0"
GRUB_DISABLE_RECOVERY="true"
SysRq anahtarını etkinleştirme
sysctl -w kernel.sysrq=1;echo kernel.sysrq = 1 >> /etc/sysctl.conf;sysctl -a | grep -i sysrq
Red Hat 7.2 ve 7.3 GRUB yapılandırması
Değiştireceğiniz dosya /etc/default/grub dosyasıdır; varsayılan yapılandırma şu örneğe benzer:
GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0 earlyprintk=ttyS0"
GRUB_DISABLE_RECOVERY="true"
/etc/default/grub içinde aşağıdaki satırları değiştirin
GRUB_TIMEOUT=1
to
GRUB_TIMEOUT=5
GRUB_TERMINAL_OUTPUT="console"
to
GRUB_TERMINAL="serial console"
Bu satırı da ekleyin:
GRUB_SERIAL_COMMAND="serial –speed=115200 –unit=0 –word=8 –parity=no –stop=1″
/etc/default/grub artık şu örneğe benzer görünmelidir:
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL="serial console"
GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0 earlyprintk=ttyS0"
GRUB_DISABLE_RECOVERY="true"
Kullanarak grub yapılandırmasını tamamlama ve güncelleştirme
grub2-mkconfig -o /boot/grub2/grub.cfg
SysRq çekirdek parametresini ayarlayın:
sysctl -w kernel.sysrq = 1;echo kernel.sysrq = 1 >> /etc/sysctl.conf;sysctl -a | grep -i sysrq
Alternatif olarak GRUB ve SysRq'yi kabukta veya Çalıştır Komutu aracılığıyla tek bir satır kullanarak yapılandırabilirsiniz. Bu komutu çalıştırmadan önce dosyalarınızı yedekleyin:
cp /etc/default/grub /etc/default/grub.bak; sed -i 's/GRUB_TIMEOUT=1/GRUB_TIMEOUT=5/g' /etc/default/grub; sed -i 's/GRUB_TERMINAL_OUTPUT="console"/GRUB_TERMINAL="serial console"/g' /etc/default/grub; echo "GRUB_SERIAL_COMMAND=\"serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1\"" >> /etc/default/grub;grub2-mkconfig -o /boot/grub2/grub.cfg;sysctl -w kernel.sysrq=1;echo kernel.sysrq = 1 /etc/sysctl.conf;sysctl -a | grep -i sysrq
Red Hat 6.x GRUB yapılandırması
Değiştireceğiniz dosya /boot/grub/grub.conf dosyasıdır. değeri GRUB'un timeout
ne kadar süreyle gösterileceğini belirler.
#boot=/dev/vda
default=0
timeout=15
splashimage=(hd0,0)/grub/splash.xpm.gz
#hiddenmenu
serial --unit=0 --speed=9600
terminal serial
terminal --timeout=5 serial console
Son satır terminali –-timeout=5 seri konsolu, 5 saniyelik bir istem ekleyerek GRUB zaman aşımını daha da artırır. Devam etmek için herhangi bir tuşa basın.
GRUB menüsü, Esc tuşuna basmanıza gerek kalmadan yapılandırılmış zaman aşımı=15 için ekranda görünmelidir. Menüyü etkin hale getirmek için Tarayıcı'da Konsol'a tıkladığından emin olun ve gerekli çekirdeği seçin.
Suse
SLES 12 sp1
YaST bootloader'ı resmi belgelere göre kullanın
Veya aşağıdaki parametreleri ekleyin//etc/default/grub'a değiştirin:
GRUB_TERMINAL=serial
GRUB_TIMEOUT=5
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=9600 --parity=no"
```console
Verify that ttys0 is used in the GRUB_CMDLINE_LINUX or GRUB_CMDLINE_LINUX_DEFAULT
```console
GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0,9600n"
Grub.cfg dosyasını yeniden oluşturma
grub2-mkconfig -o /boot/grub2/grub.cfg
SLES 11 SP4
Seri Konsol görüntülenir ve önyükleme iletilerini görüntüler ancak oturum açma bilgisi görüntülemez: istemi
VM'de bir ssh oturumu açın ve /etc/inittab dosyasını şu satırın açıklamasını kaldırarak güncelleştirin:
#S0:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt102
Ardından komutunu çalıştırın
telinit q
GRUB'yi etkinleştirmek için /boot/grub/menu.lst dosyasında aşağıdaki değişiklikler yapılmalıdır
timeout 5
serial --unit=0 --speed=9600 --parity=no
terminal --timeout=5 serial console
root (hd0,0)
kernel /boot/vmlinuz-3.0.101-108.74-default root=/dev/disk/by-uuid/ab6b62bb--
1a8c-45eb-96b1-1fbc535b9265 disk=/dev/sda USE_BY_UUID_DEVICE_NAMES=1 earlyprinttk=ttyS0 console=ttyS0 showopts vga=0x314
Bu yapılandırma, Konsolda 5 saniye boyunca görünmeye devam etmek için herhangi bir tuşa basın iletisini etkinleştirir
Ardından GRUB menüsünü 5 saniye daha görüntüler. Aşağı oka basarak sayacı kesintiye uğratacak ve önyüklemek istediğiniz çekirdeklerden birini seçerek kök parolanın ayarlanmasını gerektiren tek bir kullanıcı modu için anahtar sözcüğünü eklersiniz.
init=/bin/bash komutunun eklenmesi çekirdeği yükler ancak init programının bir bash kabuğuyla değiştirilmesini sağlar.
Parola girmek zorunda kalmadan bir kabuğa erişim kazanırsınız. Daha sonra Linux hesaplarının parolasını güncelleştirmeye devam edebilir veya başka yapılandırma değişiklikleri yapabilirsiniz.
Çekirdeği bash istemine zorlama
GRUB erişimine sahip olmak, başlatma işlemini kesintiye uğratmanıza olanak tanır. Bu etkileşim birçok kurtarma yordamı için yararlıdır. Kök parolanız yoksa ve tek kullanıcı kök parolanız olmasını gerektiriyorsa, init programını bash istemiyle değiştirerek çekirdeği önyükleyebilirsiniz; bu kesinti, çekirdek önyükleme satırına init=/bin/bash eklenerek gerçekleştirilebilir
komutunu kullanarak / (kök) dosya sistemi RW'nizi yeniden bağlayın
mount -o remount,rw /
Artık kök parola değişikliği veya diğer birçok Linux yapılandırma değişikliğini gerçekleştirebilirsiniz
ILE VM'yi yeniden başlatın
/sbin/reboot -f
Tek Kullanıcı modu
Alternatif olarak VM'ye tek kullanıcı veya acil durum modunda erişmeniz gerekebilir. Ok tuşlarını kullanarak önyüklemek veya kesmek istediğiniz çekirdeği seçin. Çekirdek önyükleme satırına tek veya 1 anahtar sözcüğünü ekleyerek istediğiniz modu girin. RHEL sistemlerinde rd.break dosyasını da ekleyebilirsiniz.
Tek kullanıcı moduna erişme hakkında daha fazla bilgi için bu belgeye bakın
Sonraki adımlar
Azure Seri Konsolu hakkında daha fazla bilgi edinin
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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin