Grub
En sık ihtiyaç duyduğum grub2 güncellemesi ile ilgili komutlar. Diyelim ki Fedora, sda3'te kurulu. Bu disk bölümünün başına grub2'yi yazmak için kullanılabilecek komut:
grub2-install /dev/sda3Grub2 yapılandırmasını tekrar yapmak için (menüyü tekrar oluşturmak)
grub2-mkconfig -o /boot/grub2/grub.cfgUEFI bir sistemde ise bu komut şöyle olmalı:
grub2-mkconfig -o /boot/efi/EFI/grub.cfgGrub2'nin varsayılan ayarları /etc/default/grub dosyasındadır, menünün görüntülenme süresi, seçim yapılmaz ise varsayılan olarak menüdeki hangi öğe ile devam edileceği gibi. Örnek bir /etc/default/grub dosyası:
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
Görüldüğü gibi GRUB_DEFAULT=saved diye bir durum var. Saved hangisi diye düşünmeden şu komut ile bakabiliriz:
grub2-editenv listya da /boot/grub2/grubenv dosyası (UEFI sistemlerde /boot/efi/EFI/fedora/grubenv) dosyasının içinde yazar.
Özelleştirilebilen betikler de /etc/grub.d klasöründe bulunur.
Özellikle birden fazla işletim sisteminin yüklendiği durumlarda GRUB ile ilgili sorunlar yaşanabilir. Eğer açılışta grub menüsü görünmüyorsa
grub2-instsall /dev/sdaile diskin başına grub stage 1'i yazmak gerekir. Eğer menü görünüyor, ama sonrasında bir hata alınıyorsa
grub2-mkconfig -o /boot/grub2/grub.cfgile grub yapılandırılması tekrar oluşturulmalıdır. Eğer o hata ekranında kaldıysak e'ye basarak düzenleme moduna girebilir, ya da c'ye basarak etkileşimli kabuğa (interactive shell) girmek olabilir. Etkileşimli kabuğa girdikten sonra ls ile mevcut disk bölümlerini görmek isteyebiliriz. Burada dikkat edilecek nokta, disklerin 0'dan, bölümlerin 1'den başlayarak numaralandırılmış olması. Hedef disk bölümünü seçtikten sonra
set root=(hd0,msdos3)komutuyla /dev/sda3'e root olarak belirleyebiliriz. Bundan sonra da kernel ve initrd'yi belirlemek gerek. Bunun için de (yine sda3'de olduğunu varsaydığımız vmlinuz ve initrd için)
linux /boot/4.15.9-300.fc27.x86_64 root=/dev/sda3 rhgb quietSon aşama olarak sistemi tekrar açma komutu vermek gerek.
initrd /boot/
bootSistem açıldıktan sonra da grub'ı tekrar yazmak için
grub2-install /dev/sdayazmayı unutmamak gerek [1], [2].
Bazen de bir CD/USB ya da diskteki ikincil durumda (grub açısından) bulunan linux kurulumundan grub'ı onarmak gerekebilir. Bunun için şu adımlar izlenebilir:
- Önce hedef disk bölümünü mount etmek gerek.
mount /dev/sda3 /mntEğer /boot ayrı bir bölüm ise bunu da
mount /dev/sdaX /mnt/bootile bağlamak gerek.
- Ardından canlı sistemin (şu anda açık olan) /dev klasörü ile hedef sistemin /dev klasörü arasında bir bağ kurmak gerek
mount --bind /dev /mnt/dev- Root'u geçici olarak /mnt olarak değiştirelim
chroot /mnt- Şu anda grub'ı tekrar yazabiliriz
grub2-install /dev/sda- İşimiz bittikten sonra önce chroot'tan çıkmak, sonra da mount edilen klasörleri unmount etmek gerek:
exitRepoları Yönetmek
umount /mnt/dev
umount /mnt/boot (ayrıca mount edildiyse)
umount /mnt
Ubuntu'ya kıyasla varsayılan depolarında daha az yazılım var, Fedora'nın. Bunun sebebi de özgür yazılıma olan daha sıkı bağlılığı. Eğer özgür olmayan yazılımları da kurmak isterseniz Fedora'da bazı ek repository'leri eklemek gerek. Repoların bilgileri /etc/yum.repos.d klasöründe tutulur. dnf ile de bir depo listesi çekilebilir:
dnf repolistkullanılabilir.Eğer repository'lerden birini geçici olarak kapatmak (kalıcı olarak silmek değil) istersek
dnf config-manager --set-disabled <repo-id>kullanılabilir. repo-id, dnf repolist komutu ile elde edilen listenin ilk sütunundaki veri alanıdır. Tekrar etkinleştirmek için ise
dnf config-manager --set-enabled <repo-id>kullanılabilir. Repository'yi tamamen silmek için ise /etc/yum.repos.d klasöründeki ilgili kaydı silmek gerekir.
Dnf-Makecache
Bilgisayarım her açıldığında software center, komut satırından yazdığım dnf check-update komutundan bağımsız olarak arka planda güncellemeleri kontrol ediyordu. Ben de güncellemeleri kendim kontrol takip ettiğimden, software center'ın (dnf-makecache adında bir hizmet) ayrıca takip etmesine gerek olmadığını düşünüp bu hizmeti kapattım:
sudo systemctl stop dnf-makecache.timerFirewall
sudo systemctl disable dnf-makecache.timer
Güvenlik durumunun durumunu şu şekilde sorgulayabiliriz
$ firewall-cmd --stateYapılandırma ile ilgili daha fazla bilgi için şu veya bu sayfalar güzel.
running
Çalışan uygulamanın sürecini bulmak
Çalışan bir uygulamaya (pencere) ait sürecin hangisi olduğunu bulmak için komut satırından önce:
$ xprop _NET_WM_PIDkomutunu vererek seçiciyi başlatmak lazım. Seçici başlayınca farenin oku bir artı işaretine dönüşecek. Daha sonra tıkladığımız pencereye ait sürecin ID'si görüntülenecek. Örneğin XFCE masaüstünde boş masaüstüne tıkladığımda
_NET_WM_PID(CARDINAL) = 1384çıktı. Sonra
$ ps -p 1384 -o pid,command
kullanarak 1384 pid'li sürecin hangisi olduğunu bulabilirim.
Alternatif olarak bir de şu sayfada önerildiği gibi xdotool kullanılabilir:
$ xdotool selectwindow getwindowpid
Bu da, tıklanan pencerenin pid'sin verecek. Bunlar X window manager için geçerli. Wayland'de xdotool yerine wtype kullanılabilir, denemedim. Ayrıca şu sayfada lg (looking glass) önerilmiş.
Açılış performans görüntüleme
Her bilgisayar yavaştır. Herkes bilgisayarını hızlandırmak ister. Açılışta bilgisayarın nerelerde zaman harcadığını incelemek için yapılabilecek:
$ systemd-analyze
Startup finished in 1.053s (kernel) + 4.058s (initrd) + 34.774s (userspace) = 39.885sBuradan görüldüğü üzre bilgisayarımın kullanıma hazır hale gelmesi 39,885 saniye sürmüş. Bunun 34 küsur saniyesi benim kullanıcı seviyesindeki işlemlerim için harcanmış. Biraz daha fazla bilgi isteyip süreçler/hizmetlerden birini "suçlamak" için
graphical.target reached after 28.225s in userspace
$ systemd-analyze blameBu şekilde en çok zaman nereye harcanmış şu şekilde bir liste çıkar:
12.888s firewalld.serviceBunların azaltılması ve açılışın daha hızlı hale getirilmesi tamamen başka bir konu. Bu gibi konularda güzel bir kaynak olarak arch-wiki sayfası görülebilir. Ama genel olarak eğer kullanılmıyorsa şu hizmetler önce durdurulup sonra devre dışı bırakılabilir:
11.540s accounts-daemon.service
7.707s rtkit-daemon.service
7.439s avahi-daemon.service
7.410s systemd-logind.service
7.397s abrtd.service
7.380s livesys-late.service
7.378s initial-setup.service
7.156s NetworkManager-wait-online.service
6.907s lvm2-monitor.service
bluetooth.service (bluetooth cihazlara bağlantı)
ModemManager.service (bir modem üzerinden bağlantı oluşturma)
abrtd.service (hata bildirme hizmeti)
cupsd.service (yazıcı ve çıktı alma işleri)
accounts-daemon.service (kullanıcı hesabı işleri, bkz [3])
avahi-daemon.service (ağ sıfır yapılandırma hizmeti, bkz [3])
Örnek hizmet durdurma:
sudo systemctl stop bluetooth.serviceÖrnek hizmet devre dışı bırakma
sudo systemctl disable bluetooth.service
Bazı hizmetler başka hizmetler tarafından tekrar başlatılabilir. Hiçbir şekilde başlatılmasını istemiyorsak mask edilebilir:
sudo systemctl mask bluetooth.serviceAyrıca açılış sürecini grafiksel olarak değerlendirebilmek için [4]
systemd-analyse plot > plot.svgSystemctl hakkında cheatsheat için [5] güzel bir kaynak.
Disk işleri
Önce sistemde hangi diskler var bulmak için:
$ sudo fdisk -l
Disk /dev/sda: 40 GiB, 42949672960 bayt, 83886080 sektörKırmızı ile vurgulanan satırda görüleceği gibi sistemde sadece 40 GB'lık bir disk var (sda). Bunu ayrıca şu komutla da doğrulayabiliriz:
Birimler: sektör'i 1 * 512 = 512 baytın
Sektör boyutu (montıksal/fiziksel): 512 bayt / 512 bayt
G/Ç boyutu (en düşük/en uygun): 512 bayt / 512 bayt
Disketikeri tipi: dos
Disk belirleyicisi: 0xa039b385
Aygıt Açılış Başlangıç Son Sektör Boyut ld Türü
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 83886079 81786880 39G 8e Linux LVM
Disk /dev/mapper/fedora_localhost--live-root: 37 GiB, 39669727232 bayt, 77479936 sektör
Birimler: sektör'i 1 * 512 = 512 baytın
Sektör boyutu (montıksal/fiziksel): 512 bayt / 512 bayt
G/Ç boyutu (en düşük/en uygun): 512 bayt / 512 bayt
Disk /dev/mapper/fedora_localhost--live-swap: 2,1 GiB, 2202009600 bayt, 4300800 sektörBirimler: sektör'i 1 * 512 = 512 baytın
Sektör boyutu (montıksal/fiziksel): 512 bayt / 512 bayt
G/Ç boyutu (en düşük/en uygun): 512 bayt / 512 bayt
$ ll /dev/sd?Bu diskin içindeki bölümler de mavi ile vurgulanan satırlarda görülen sda1 (1 GB) ve sda2 (39 GB). sda2'nin türünün LVM olduğuna dikkat! Kök (root) ve takas (swap) bölümleri bu ikisinden birisi de değil. sda2'nin içinde iki ayrı bölüm daha var; root (37 GiB) ve swap (2,1 GiB). Bu bilgiyi lsblk komutu ile de edinebiliriz:
brw-rw----. 1 root disk 8, 0 Eki 31 17:08 /dev/sda
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTBiraz daha şekilli bir liste görebilmek için
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 39G 0 part
├─fedora_localhost--live-root 253:0 0 37G 0 lvm /
└─fedora_localhost--live-swap 253:1 0 2,1G 0 lvm [SWAP]
sr0 11:0 1 1,3G 0 rom
$ lsblk -o NAME,KNAME,TYPE,SIZE,MOUNTPOINT
NAME KNAME TYPE SIZE MOUNTPOINT/dev/mapper klasörü altındaki dm-0 ve dm-1'i merak ettim:
sda sda disk 40G
├─sda1 sda1 part 1G /boot
└─sda2 sda2 part 39G
├─fedora_localhost--live-root dm-0 lvm 37G /
└─fedora_localhost--live-swap dm-1 lvm 2,1G [SWAP]
sr0 sr0 rom 1,3G
$ ll /dev/mapper/Görüldüğü gibi fedora_localhost--live-root aslında /dev/dm-0'a kısayol, fedora_localhost--live-swap da /dev/dm-1'e kısayol.
lrwxrwxrwx. 1 root root 7 Eki 31 10:17 fedora_localhost--live-root -> ../dm-0
lrwxrwxrwx. 1 root root 7 Eki 31 10:17 fedora_localhost--live-swap -> ../dm-1
Ayrıca dmsetup ile listeleme ile:
$ sudo dmsetup lsBu bölümlerin herhangi biri hakkında daha fazla bilgiyi de dmsetup ile edinebiliriz:
fedora_localhost--live-swap (253:1)
fedora_localhost--live-root (253:0)
$ sudo dmsetup info /dev/dm-1Aynı bilgiyi dmsetup info fedora_localhost--live-swap diyerek de alabilirdik.
Name: fedora_localhost--live-swap
State: ACTIVE
Read Ahead: 256
Tables present: LIVE
Open count: 2
Event number: 0
Major, minor: 253, 1
Number of targets: 1
UUID: LVM-Bwl8Nw83iw3OjVwS9MVJZxXDm7WadBd1g5peulxJvJ3oSI9gbbpz1usck3vVNhKD
Disk bilgileri /etc/fstab içinde bu şekilde geçiyor.
Fedora Administrator's Guide bir de partx komutunu vermiş:
$ sudo partx /dev/sda
NR START END SECTORS SIZE NAME UUIDŞu anda bağlanmış (mount) dosya sistemlerinin listesini almak için
1 2048 2099199 2097152 1G a039b385-01
2 2099200 83886079 81786880 39G a039b385-02
$ findmntkomutu kullanılabilir. Uzun bir ağaç verecek. Düz liste alabilmek için -l anahtarı kullanılabilir.
Disk bölümleri ne kadar kullanımda görmek için (-x ile tmpfs'i hariç tutarak):
$ df -h -x tmpfs
Dosyasistemi Boy Dolu Boş Kull% Bağlanılan yer
devtmpfs 972M 0 972M 0% /dev
/dev/mapper/fedora_localhost--live-root 37G 4,5G 30G 13% /
/dev/sda1 976M 218M 692M 24% /boot
---
[1] https://fedoraproject.org/wiki/GRUB_2
[2] https://docs-old.fedoraproject.org/en-US/Fedora/26/html/System_Administrators_Guide/sec-Managing_DNF_Repositories.html
[3] https://www.linux.com/learn/cleaning-your-linux-startup-process
[4] http://0pointer.de/public/systemd-ebook-psankar.pdf
[5] https://fedoraproject.org/wiki/SysVinit_to_Systemd_Cheatsheet
Hiç yorum yok:
Yorum Gönder