Linux Eğitim Notları 3

Boot the system


Makineyi kontrol etmek için, işletim sisteminin ana bileşeni olan kernel, BIOS veya UEFI gibi önceden yüklenmiş bir yazılım tarafından yüklenen bir program olan bir bootloader tarafından yüklenmelidir. Bootloader, kernel’e kök dosya sisteminin hangi bölümde bulunduğu veya işletim sisteminin hangi modda çalıştırılacağı gibi parametreleri iletmek için özelleştirilebilir. Kernel yüklendikten sonra, donanımı tanımlayıp yapılandırarak önyükleme işlemini sürdürür. Son olarak, kernel, sistem hizmetlerini başlatma ve yönetme işlevinden sorumlu yardımcı programı çağırır.

BIOS or UEFI

x86 makinelerinin önyükleyiciyi çalıştırmak için yürüttüğü işlemler, BIOS veya UEFI kullanıp kullanmadıklarına bağlı olarak farklılık gösterir. BIOS, Temel Giriş/Çıkış Sistemi kısaltması olan, anakartta bulunan ve her seferinde bilgisayarın açılmasıyla yürütülen bir programdır. Bu tür bir program firmware olarak adlandırılır ve depolama yeri sistemde bulunan diğer depolama aygıtlarından ayrıdır. BIOS, BIOS yapılandırma yardımcı programında tanımlanan sıraya uygun olarak ilk depolama aygıtındaki ilk 440 baytın ilk önyükleme yükleyicisinin (ayrıca önyükleyici olarak da adlandırılır) ilk aşaması olduğunu varsayar. Bir depolama aygıtının ilk 512 baytı, standart DOS bölüm şemasını kullanan depolama aygıtlarının MBR’si (Ana Önyükleme Kaydı) olarak adlandırılır ve ilk önyükleme yükleyicisinin ilk aşamasının yanı sıra bölüm tablosunu içerir. MBR doğru verileri içermiyorsa, bir alternatif yöntem kullanılmadıkça sistem önyükleme yapamaz.
Genel olarak, BIOS ile donatılmış bir sistem önyükleme işlemleri öncesi adımları şunlardır:

  1. Makine gücü açıldığında, POST (power-on self-test) süreci basit donanım arızalarını tanımlamak için yürütülür.
  2. BIOS, video çıkışı, klavye ve depolama ortamı gibi sistem yüklemek için temel bileşenleri etkinleştirir.
  3. BIOS, önyükleme yükleyicisinin ilk aşamasını MBR’den (BIOS yapılandırma yardımcı programında tanımlanan ilk cihazın ilk 440 baytı) yükler.
  4. Önyükleme yükleyicisinin ilk aşaması, önyükleme seçeneklerini sunan ve çekirdeği yüklemekten sorumlu olan önyükleme yükleyicisinin ikinci aşamasını çağırır.

UEFI, Unified Extensible Firmware Interface kısaltmasıyla, BIOS’tan bazı temel noktalarda farklılık gösterir. BIOS gibi, UEFI de bir firmware’dir, ancak bölümleri tanımlayabilir ve bunlarda bulunan birçok dosya sistemi okuyabilir. UEFI, MBR’ye dayanmaz, sadece anakart üzerine takılan non-volatile belleğinde (NVRAM) saklanan ayarları dikkate alır. Bu tanımlamalar, UEFI uyumlu programların konumunu belirtir; bu programlar EFI uygulamaları olarak adlandırılır ve bunlar otomatik olarak yürütülür veya bir önyükleme menüsünden çağrılabilir. EFI uygulamaları, önyükleme yükleyicileri, işletim sistemi seçicileri, sistem teşhis ve onarım araçları vb. olabilir. Bunlar geleneksel bir depolama cihazı bölümünde ve uyumlu bir dosya sisteminde olmalıdır. Standart uyumlu dosya sistemleri, blok cihazları için FAT12, FAT16 ve FAT32 ve optik medya için ISO-9660’tır. Bu yaklaşım, BIOS ile mümkün olanlardan çok daha sofistike araçların uygulanmasına olanak tanır.
EFI uygulamalarını içeren bölüm, EFI Sistem Bölümü veya kısaca ESP olarak adlandırılır. Bu bölüm, kök dosya sistemi veya kullanıcı veri dosya sistemleri gibi diğer sistem dosya sistemleriyle paylaşılmamalıdır. ESP bölümündeki EFI dizini, NVRAM’da kaydedilen girişler tarafından işaret edilen uygulamaları içerir.

Genel olarak, UEFI ile donatılmış bir sistemde önyükleme işletim sistemi adımları şunlardır:

  1. Makine gücü açıldığında, POST (power-on self-test) süreci basit donanım arızalarını tanımlamak için yürütülür.
  2. UEFI, video çıkışı, klavye ve depolama ortamı gibi temel bileşenleri etkinleştirmek için sistem yüklemeyi başlatır.
  3. UEFI’nin firmware’i, ESP bölümünün dosya sistemine depolanan önceden tanımlanmış EFI uygulamasını yürütmek için NVRAM’da saklanan tanımlamaları okur. Genellikle, önceden tanımlanmış EFI uygulaması bir önyükleme yükleyicisidir.
  4. Önceden tanımlanmış EFI uygulaması bir önyükleme yükleyicisi ise, işletim sistemini başlatmak için çekirdeği yükleyecektir.

UEFI standardı ayrıca Secure Boot adı verilen bir özelliği de destekler. Secure Boot, sadece donanım üreticisi tarafından yetkilendirilmiş, yani imzalı EFI uygulamalarının yürütülmesine izin verir. Bu özellik, kötü amaçlı yazılımlara karşı korumayı artırır, ancak üreticinin garanti kapsamında olmayan işletim sistemlerinin kurulumunu zorlaştırabilir.

The Bootloader

x86 mimarisi için Linux’un en popüler önyükleme yükleyicisi GRUB (Grand Unified Bootloader)’tur. BIOS veya UEFI tarafından çağrılmasıyla birlikte GRUB, önyükleme yapılabilir işletim sistemlerinin bir listesini görüntüler. Liste bazen otomatik olarak görünmez, ancak BIOS tarafından GRUB çağrılırken Shift tuşuna basarak çağrılabilir. UEFI sistemlerinde ise, Esc tuşu kullanılmalıdır. GRUB menüsünden yüklenmesi gereken yüklenmiş çekirdeklerden hangisinin yükleneceğini seçmek ve ona yeni parametreler iletmek mümkündür. En kullanışlı çekirdek parametrelerinden bazıları şunlardır:

acpi
ACPI desteğini etkinleştirir/devre dışı bırakır. acpi=off, ACPI desteğini devre dışı bırakır.

init
Alternatif bir sistem başlatıcısı belirler. Örneğin, init=/bin/bash, Bash kabuğunu başlatıcı olarak ayarlar. Bu, çekirdek önyükleme işleminden hemen sonra bir kabuk oturumu başlatacaktır.

systemd.unit
Etkinleştirilecek systemd hedefini belirler. Örneğin, systemd.unit=graphical.target. Systemd ayrıca SysV için tanımlanan sayısal çalışma seviyelerini de kabul eder. Örneğin, 1 çalışma seviyesini etkinleştirmek için, yalnızca sayı 1 veya harf S (tekil için kısaltma) ‘yi bir çekirdek parametresi olarak dahil etmek yeterlidir.

mem Sisteme kullanılabilir RAM miktarını belirler. Bu parametre, her bir konuğa ne kadar RAM’ın kullanılabilir olacağını sınırlamak için sanal makineler için yararlıdır. Örneğin, mem=512M kullanarak belirli bir konuk sistem için kullanılabilir RAM miktarını 512 megabayta sınırlayacaktır.

maxcpus
Simetrik çok işlemcili makinelerde sisteme görünen işlemci (veya işlemci çekirdekleri) sayısını sınırlar. Sanal makineler için de yararlıdır. Değeri 0, çok işlemcili makineler için destekleri kapatır ve kernel parametresi nosmp ile aynı etkiye sahiptir. maxcpus=2 parametresi, işletim sistemi için kullanılabilir işlemci sayısını ikiye sınırlayacaktır.

quiet
Çoğu önyükleme iletilerini gizler.

vga
Bir video modunu seçer. vga=ask parametresi, seçilebilecek mevcut modların bir listesini gösterecektir.

root
Önyükleyicide önceden yapılandırılmış olan kök bölümünü belirler. Örneğin, root=/dev/sda3.

rootflags
Kök dosya sistemi için bağlama seçenekleri.

ro
Kök dosya sisteminin ilk bağlamasını salt okunur yapar.

rw
İlk bağlamada kök dosya sisteminde yazma izni verir.

Çekirdek parametrelerini değiştirmek genellikle gerekli değildir, ancak işletim sistemiyle ilgili sorunları tespit etmek ve çözmek için faydalı olabilir. Çekirdek parametreleri, bunların yeniden başlatmalar arasında kalıcı olmalarını sağlamak için /etc/default/grub dosyasındaki GRUB_CMDLINE_LINUX satırına eklenmelidir. /etc/default/grub değiştiğinde her zaman önyükleme yükleyicisi için yeni bir yapılandırma dosyası oluşturulmalıdır; bunu grub-mkconfig -o /boot/grub/grub.cfg komutuyla yapılır. İşletim sistemi çalıştığında, geçerli oturumu yüklemek için kullanılan çekirdek parametreleri /proc/cmdline dosyasında okunabilir durumdadır.

System Initialization


Kernel dışında, işletim sistemi beklenen özellikleri sağlayan diğer bileşenlere bağlıdır. Bu bileşenlerin birçoğu, basit shell komut dosyalarından daha karmaşık hizmet programlarına kadar değişen sistem başlatma işlemi sırasında yüklenir. Shell komut dosyaları, genellikle sistem başlatma işlemi sırasında çalışacak ve sona erecek kısa ömürlü görevleri gerçekleştirmek için kullanılır. Hizmetler, daemon olarak da bilinir, işletim sisteminin içsel yönlerinden sorumlu olabilecekleri için sürekli olarak etkindirler.

Linux dağıtımına en farklı özelliklere sahip başlangıç shell komut dosyaları ve daemonlar, tarihsel olarak, tüm Linux dağıtımlarının distribution maintainers’ının ve kullanıcılarının beklentilerini karşılayan tek bir çözümün geliştirilmesini engelleyen bir gerçektir. Ancak, distribution maintainers’ının bu işlevi gerçekleştirmek için seçtiği herhangi bir araç, en azından sistem hizmetlerini başlatma, durdurma ve yeniden başlatma yeteneğine sahip olacaktır. Bu eylemler genellikle yazılım güncellemesinden sonra sistem tarafından gerçekleştirilir, ancak sistem yöneticisi genellikle yapılandırma dosyasında değişiklik yaptıktan sonra hizmeti manuel olarak yeniden başlatmak zorunda kalacaktır. Bir sistem yöneticisinin duruma bağlı olarak belirli bir dizi daemonu etkinleştirebilmesi de uygun olacaktır. Örneğin, sistem bakım görevlerini gerçekleştirmek için yalnızca minimum bir hizmet kümesini çalıştırmak mümkün olmalıdır.

İşletim sisteminin başlatılması, bootloader’ın kernel’i RAM’e yüklediği anda başlar. Ardından, kernel CPU’nun kontrolünü ele alır ve işletim sisteminin temel donanım yapılandırması ve bellek adresleme gibi temel yönlerini tespit edip kurmaya başlar. Kernel daha sonra initramfs’i (ilk RAM dosya sistemi) açar. Initramfs, önyükleme işlemi sırasında geçici kök dosya sistemi olarak kullanılan bir dosya sistemi içeren bir arşivdir. Bir initramfs dosyasının ana amacı, kernel’in işletim sisteminin “gerçek” kök dosya sistemine erişebilmesi için gereken modülleri sağlamaktır. Kök dosya sistemi mevcut olduğunda, kernel /etc/fstab’de yapılandırılmış tüm dosya sistemlerini bağlar ve ardından ilk programı, shell olarak adlandırılan bir yardımcı programı çalıştırır. Shell programı, tüm başlatma komut dosyalarını ve sistem daemonlarını çalıştırmaktan sorumludur. Geleneksel init dışında böyle sistem başlatıcıların farklı uygulamaları da vardır, bunlar arasında systemd ve Upstart bulunur. Shell programı yüklendikten sonra, initramfs RAM’dan kaldırılır.

SysV standard SysVinit standardına dayalı bir hizmet yöneticisi, runlevel kavramını kullanarak hangi daemon ve kaynakların kullanılacağını kontrol eder. Runlevel’lar 0’dan 6’ya kadar numaralandırılır ve dağıtım bakıcıları tarafından belirli amaçları karşılamak üzere tasarlanmıştır. Tüm dağıtımlar arasında paylaşılan tek runlevel tanımları 0, 1 ve 6’dır.

systemd systemd, SysV komutları ve runlevel’lar için uyumluluk katmanına sahip modern bir sistem ve hizmet yöneticisidir. systemd, eş zamanlı bir yapıya sahiptir, servis etkinleştirmek için soketler ve D-Bus kullanır, talep üzerine daemon yürütme, cgroups ile işlem izleme, anlık destek, sistem oturumu kurtarma, bağlama noktası kontrolü ve bağımlılık temelli bir hizmet kontrolü sağlar. Son yıllarda, çoğu büyük Linux dağıtımı, varsayılan sistem yöneticileri olarak systemd’yi giderek benimsemiştir.

Upstart systemd gibi, Upstart da init’in yerine geçen bir sistemdir. Upstart’ın odak noktası, sistem hizmetlerinin yüklenme sürecini paralelleştirerek önyükleme sürecini hızlandırmaktır. Upstart, geçmiş sürümlerde Ubuntu tabanlı dağıtımlar tarafından kullanılmıştır, ancak günümüzde systemd’e yerini bırakmıştır.

Initialization Inspection

Önyükleme işlemi sırasında hatalar meydana gelebilir, ancak bunlar işletim sisteminin tamamen durmasına neden olacak kadar kritik olmayabilir. Bununla birlikte, bu hatalar sistemın beklenen davranışını tehlikeye sokabilir. Tüm hatalar, hata ne zaman ve nasıl meydana geldiğine dair değerli bilgiler içerdiğinden, gelecekteki araştırmalar için kullanılabilir mesajlarla sonuçlanır. Hata mesajları oluşturulmasa bile, önyükleme işlemi sırasında toplanan bilgiler, ayarlama ve yapılandırma amaçları için faydalı olabilir.

Kernel, mesajlarını, önyükleme mesajları dahil olmak üzere, sakladığı bellek alanına kernel ring buffer denir. Mesajlar, önyükleme sırasında görüntülenmeseler bile, örneğin bir animasyon görüntülendiğinde bile, kernel ring buffer’da tutulur. Ancak, sistem kapatıldığında veya dmesg –clear komutu çalıştırılarak kernel ring buffer tüm mesajları kaybeder. Seçeneksiz olarak, dmesg komutu, kernel ring buffer’daki mevcut mesajları görüntüler.

$ dmesg
[ 5.262389] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[ 5.449712] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 5.460286] systemd[1]: systemd 237 running in system mode.
[ 5.480138] systemd[1]: Detected architecture x86-64.

[ 5.481767] systemd[1]: Set hostname to . [ 5.636607] systemd[1]: Reached target User and Group Name Lookups. [ 5.636866] systemd[1]: Created slice System Slice. [ 5.637000] systemd[1]: Listening on Journal Audit Socket. [ 5.637085] systemd[1]: Listening on Journal Socket. [ 5.637827] systemd[1]: Mounting POSIX Message Queue File System… [ 5.638639] systemd[1]: Started Read required files in advance. [ 5.641661] systemd[1]: Starting Load Kernel Modules… [ 5.661672] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro [ 5.694322] lp: driver loaded but no devices found [ 5.702609] ppdev: user-space parallel port driver [ 5.705384] parport_pc 00:02: reported by Plug and Play ACPI [ 5.705468] parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [PCSPP,TRISTATE,COMPAT,EPP,ECP,DMA] [ 5.800146] lp0: using parport0 (interrupt-driven). [ 5.897421] systemd-journald[352]: Received request to flush runtime journal from PID 1


dmesg komutunun çıktısı yüzlerce satır uzunluğunda olabilir, bu nedenle önceki liste, çekirdeğin systemd hizmet yöneticisini çağırmasını gösteren alıntıyı içerir. Satırların başındaki değerler, çekirdek yüklemesinin başladığı zamana göre saniye cinsinden belirtilmiştir.

systemd tabanlı sistemlerde, journalctl komutu seçenekler -b, –boot, -k veya –dmesg ile önyükleme ile ilgili mesajları gösterecektir. Komut journalctl –list-boots, mevcut önyükleme ile ilgili önyükleme numaralarının, bunların tanımlama özetlerinin ve ilgili ilk ve son mesajların zaman damgalarının bir listesini gösterir.

$ journalctl –list-boots
-4 9e5b3eb4952845208b841ad4dbefa1a6 Thu 2019-10-03 13:39:23 -03—Thu 2019-10-03 13:40:30 -03
-3 9e3d79955535430aa43baa17758f40fa Thu 2019-10-03 13:41:15 -03—Thu 2019-10-03 14:56:19 -03
-2 17672d8851694e6c9bb102df7355452c Thu 2019-10-03 14:56:57 -03—Thu 2019-10-03 19:27:16 -03
-1 55c0d9439bfb4e85a20a62776d0dbb4d Thu 2019-10-03 19:27:53 -03—Fri 2019-10-04 00:28:47 -03
0 08fbbebd9f964a74b8a02bb27b200622 Fri 2019-10-04 00:31:01 -03—Fri 2019-10-04 10:17:01 -03


Önceki başlatma günlükleri de systemd tabanlı sistemlerde tutulur, bu nedenle önceki işletim sistemi oturumlarından gelen mesajlar hala incelenebilir. -b 0 veya –boot=0 seçenekleri sağlanırsa, mevcut önyükleme için mesajlar gösterilir. -b -1 veya –boot=-1 seçenekleri önceki başlatmanın mesajlarını gösterecektir. -b -2 veya –boot=-2 seçenekleri önceki başlatmanın mesajlarını gösterecektir ve böyle devam eder. Aşağıdaki alıntı, çekirdeğin son başlatma işlemi için systemd hizmet yöneticisini çağırmasını gösterir:

journalctl -b 0
oct 04 00:31:01 ubuntu-host kernel: EXT4-fs (sda1): mounted filesystem with ordered data
mode. Opts: (null)
oct 04 00:31:01 ubuntu-host kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
oct 04 00:31:01 ubuntu-host systemd[1]: systemd 237 running in system mode.
oct 04 00:31:01 ubuntu-host systemd[1]: Detected architecture x86-64.
oct 04 00:31:01 ubuntu-host systemd[1]: Set hostname to .
oct 04 00:31:01 ubuntu-host systemd[1]: Reached target User and Group Name Lookups.
oct 04 00:31:01 ubuntu-host systemd[1]: Created slice System Slice.
oct 04 00:31:01 ubuntu-host systemd[1]: Listening on Journal Audit Socket.
oct 04 00:31:01 ubuntu-host systemd[1]: Listening on Journal Socket.
oct 04 00:31:01 ubuntu-host systemd[1]: Mounting POSIX Message Queue File System…
oct 04 00:31:01 ubuntu-host systemd[1]: Started Read required files in advance.
oct 04 00:31:01 ubuntu-host systemd[1]: Starting Load Kernel Modules…
oct 04 00:31:01 ubuntu-host kernel: EXT4-fs (sda1): re-mounted. Opts:
commit=300,barrier=0,errors=remount-ro
oct 04 00:31:01 ubuntu-host kernel: lp: driver loaded but no devices found
oct 04 00:31:01 ubuntu-host kernel: ppdev: user-space parallel port driver
oct 04 00:31:01 ubuntu-host kernel: parport_pc 00:02: reported by Plug and Play ACPI
oct 04 00:31:01 ubuntu-host kernel: parport0: PC-style at 0x378 (0x778), irq 7, dma 3
[PCSPP,TRISTATE,COMPAT,EPP,ECP,DMA]
oct 04 00:31:01 ubuntu-host kernel: lp0: using parport0 (interrupt-driven).
oct 04 00:31:01 ubuntu-host systemd-journald[352]: Journal started
oct 04 00:31:01 ubuntu-host systemd-journald[352]: Runtime journal
(/run/log/journal/abb765408f3741ae9519ab3b96063a15) is 4.9M, max 39.4M, 34.5M free.
oct 04 00:31:01 ubuntu-host systemd-modules-load[335]: Inserted module ‘lp’
oct 04 00:31:01 ubuntu-host systemd-modules-load[335]: Inserted module ‘ppdev’
oct 04 00:31:01 ubuntu-host systemd-modules-load[335]: Inserted module ‘parport_pc’
oct 04 00:31:01 ubuntu-host systemd[1]: Starting Flush Journal to Persistent Storage…

İşletim sistemi tarafından başlatılan ve diğer mesajlar, /var/log/ dizini içindeki dosyalarda saklanır. Bir kritik hata meydana gelirse ve işletim sistemi, çekirdek ve initramfs yüklendikten sonra başlatma işlemini devam ettiremezse, alternatif bir önyükleme ortamı kullanılabilir ve sistem başlatılabilir ve ilgili dosya sistemine erişilebilir. Ardından, /var/log/ altındaki dosyalar, önyükleme işleminin kesilmesine neden olabilecek olası sebepler için aranabilir. Komut journalctl’in -D veya –directory seçenekleri, systemd günlük mesajlarının varsayılan konumu olan /var/log/journal/ dışındaki dizinlerdeki günlük mesajlarını okumak için kullanılabilir. systemd’nin günlük mesajları ham metin olarak depolanmadığından, bu mesajları okumak için komut journalctl gereklidir.

Guided Exercises


Soru 1) BIOS firmware’li bir makinede, önyükleme (bootstrap) ikili dosyası nerede bulunur?

Cevap 1) BIOS yapılandırma yardımcı programında tanımlandığı gibi, ilk depolama cihazının MBR’sinde bulunur.

Soru 2) UEFI firmware, EFI uygulamaları olarak adlandırılan harici programlar tarafından sağlanan genişletilmiş özellikleri destekler. Ancak, bu uygulamaların kendi özel konumları vardır. Sistemde EFI uygulamaları nerede bulunur?

Cevap 2) EFI uygulamaları, uyumlu bir dosya sistemiyle (genellikle FAT32 dosya sistemi) herhangi bir kullanılabilir depolama bloğunda bulunan EFI Sistem Bölümü’nde (ESP) saklanır.

Soru 3) Bootloader’lar, kernel’i yüklemekten önce özel kernel parametrelerini iletmeyi sağlar. Diyelim ki sistem, yanlış bilgilendirilmiş bir kök dosya sistemi konumu nedeniyle önyüklenemiyor. Doğru kök dosya sistemi, /dev/sda3 konumunda olduğunda kernel’e bir parametre olarak nasıl verilir?

Cevap 3) Kernel’e şu şekilde bir parametre olarak root=/dev/sda3 kullanılmalıdır.

Soru 4) Linux makinenin önyükleme işlemi şu mesajla sona erer:

ALERT! /dev/sda3 does not exist. Dropping to a shell!

Cevap 4) Kernel, kök dosya sistemi olarak belirtilen /dev/sda3 cihazını bulamadı.

Soru 5) Bootloader, bilgisayara birden fazla işletim sistemi yüklendiğinde seçim yapmak için bir işletim sistemi listesi sunar. Ancak, yeni kurulan bir işletim sistemi, sabit diskin MBR’sini üzerine yazabilir, önyükleme yükleyicisinin ilk aşamasını silerek diğer işletim sistemine erişilemez hale getirebilir. Bunun nedeni, UEFI firmware’ine sahip bir makinede bu durumun neden gerçekleşmeyeceğidir?

Cevap 5) UEFI makineleri, önyükleme yükleyicisinin ilk aşamasını saklamak için sabit diskin MBR’sini kullanmaz.

Soru 6) Uygun bir initramfs görüntüsü sağlamadan özel bir kernel kurmanın yaygın bir sonucu nedir?

Cevap 6) Kök dosya sistemi, türü harici bir çekirdek modülü olarak derlendiğinde erişilemez olabilir.

Soru 7) Başlatma günlüğü yüzlerce satır uzunluğunda olduğundan, dmesg komutunun çıktısı sıklıkla bir sayfalama komutuna, örneğin less komutuna yönlendirilir; bu sayede okuma kolaylaştırılır. dmesg seçeneği nedir ve otomatik olarak çıktısını sayfalar halinde göstererek açıkça bir sayfalama komutu kullanma ihtiyacını ortadan kaldırır?

Cevap 7) Komutlar dmesg -H veya dmesg –human, sayfalama komutunu varsayılan olarak etkinleştirir.

Soru 8) Bir çevrimdışı makinenin tam dosya sistemi içeren bir sabit diski çıkarıldı ve çalışan bir makineye ikincil bir sürücü olarak takıldı. Bağlama noktasının /mnt/hd olduğunu varsayarsak, journalctl komutu /mnt/hd/var/log/journal/ konumundaki günlük dosyalarının içeriğini nasıl incelemek için kullanılır?

Cevap 8) journalctl -D /mnt/hd/var/log/journal veya journalctl –directory=/mnt/hd/var/log/journal

Leave a Reply

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir