⚠️ Bu içerik, Anadolu Üniversitesi AÖF Bilgisayar Programcılığı programındaki ilgili ders için kendi ders çalışma sürecimde hazırladığım, sınav odaklı kişisel ders notlarımdan oluşmaktadır. Sınava hazırlanan öğrencilere ek bir çalışma kaynağı sunmak amacıyla paylaşılmaktadır.
SUNUCU KİMLİĞİ
Linux işletim sistemlerinin kurulum aşamasında profil ayarları sayfasında sisteme erişecek kullanıcı adı, sunucu adı (hostname) ve parola bilgileri tanımlanmaktadır. Sunucu yönetimi ve güvenliği açısından, kurulum aşamasında oluşturulan kullanıcı hesaplarının yetki seviyeleri ve SSH üzerinden parola/anahtar ile erişim yapılandırmaları kritik öneme sahiptir.
Linux dağıtımlarında kurulum esnasında varsayılan olarak gelen yönetici yetkileri ve root kullanıcısı yapılandırması farklılık göstermektedir:
- Ubuntu İşletim Sistemi: Kurulum aşamasında oluşturulan ilk kullanıcı varsayılan olarak süper kullanıcı (
sudo) yetkilerine sahip kılınır. Ubuntu kurulumundarootkullanıcısı için ayrıca bir parola istenmez; ilk kullanıcı tüm yönetimsel işlemlerisudokomutu ön ekiyle gerçekleştirir. - Debian İşletim Sistemi: Kurulum esnasında hem
sudoyetkili bir kullanıcı oluşturulur hem de Ubuntu’dan farklı olarakrootkullanıcısı için özel bir parola belirlenmesi istenir. - RedHat Tabanlı Dağıtımlar (CentOS, RedHat Enterprise Linux, AlmaLinux, Rocky Linux): Kurulum esnasında doğrudan
rootkullanıcısı için bir parola girilmesi zorunludur. Kurulumda tanımlanan normal kullanıcının yönetici (sudo) yetkisine sahip olup olmayacağı ise kullanıcının onayına (onay kutusuna) bırakılmıştır.
Aşağıdaki karşılaştırma tablosu, dağıtımların kurulum sırasındaki yetkilendirme yaklaşımlarını özetlemektedir:
| Linux Dağıtımı | İlk Kullanıcı Varsayılan Yetkisi | Kurulumda Root Parolası İstenir mi? | Sudo Yetkisi Atama Şekli |
|---|---|---|---|
| Ubuntu | Süper Kullanıcı (sudo) | Hayır (Pasif / Parolasız) | Otomatik olarak verilir |
| Debian | Süper Kullanıcı (sudo) | Evet (Ayrıca belirlenir) | Otomatik olarak verilir |
| RedHat / CentOS / Alma / Rocky | Standart Kullanıcı | Evet (Zorunlu alan) | İsteğe/Onaya bağlı |
Mac OS İşletim Sisteminde SSH Kimliği Oluşturma
Linux sunuculara parola girmeden güvenli şekilde erişim sağlamak için Asimetrik Kriptografi (Açık/Gizli Anahtar Çifti) mimarisi kullanılır. macOS ve Linux işletim sistemlerinde varsayılan olarak gelen Terminal uygulaması üzerinden SSH anahtarı üretilebilir.
SSH anahtar çifti üretmek için komut satırında ssh-keygen aracı çalıştırılır:
ssh-keygen -t ed25519 -C "kullanici@domain.com"
Komut Parametreleri ve Anlamları:
-t ed25519: -t parametresi ile oluşturulacak SSH anahtarının şifreleme algoritması türü belirtilir. ED25519 algoritması modern, yüksek güvenlikli ve hızlı bir asimetrik anahtar türüdür. SSH-keygen v1 için olası değerrsa1iken; SSH-keygen v2 için geçerli anahtar türleri:rsa,dsa,ecdsa,ecdsa-sk,ed25519,ed25519-skolarak sıralanır.-C "yorum": Anahtar dosyasının sonuna açıklayıcı bir yorum (genellikle kullanıcının e-posta adresi) eklemek için kullanılır.
Anahtar Oluşturma Adımları ve Dosya Yapısı:
- Komut çalıştırıldığında ilk olarak anahtarın kaydedileceği dosya yolu sorulur:
Enter file in which to save the key (/Users/kullanici/.ssh/id_ed25519):. Değişiklik yapılmadan ENTER tuşuna basılırsa varsayılan konuma kaydedilir. - Ardından SSH anahtarı için ek bir güvenlik parolası istenip istenmediği sorulur:
Enter passphrase (empty for no passphrase):.
- Passphrase Kullanımı: Eğer anahtara bir parola atanırsa, sunucuya SSH bağlantısı yapılırken Linux kullanıcı parolası sorulmaz; ancak SSH anahtarının kilidini açmak için belirlenen bu passphrase girilmelidir. Parola istenmiyorsa boş bırakılarak ENTER tuşuna basılır.
- İşlem tamamlandığında kullanıcı ev dizininde iki adet dosya üretilir:
- Gizli Anahtar (Private Key):
~/.ssh/id_ed25519(Asla başkalarıyla paylaşılmamalıdır!) - Açık Anahtar (Public Key):
~/.ssh/id_ed25519.pub(Sunuculara veya GitHub’a eklenecek açık anahtar)
Açık Anahtarı Panoya Kopyalama (pbcopy):
macOS sistemlerde .pub dosyasının içeriğini bir metin editörüyle açmadan doğrudan panoya kopyalamak için pbcopy komutu kullanılır:
# Tilda (~) simgesi ile ev dizini kullanımı:
pbcopy < ~/.ssh/id_ed25519.pub
# Tam dosya yolu (Absolute Path) ile kullanım:
pbcopy < /Users/kullanici_adi/.ssh/id_ed25519.pub
Not: Linux ve macOS sistemlerde tilda (
~) işareti, oturum açan kullanıcının ev dizinini (/home/kullaniciveya/Users/kullanici) temsil eden kısayoldur. Kopyalanan anahtar metni, hedef sunucudaki~/.ssh/authorized_keysdosyasına eklenir.
Windows İşletim Sisteminde SSH Kimliği Oluşturma
Windows işletim sistemlerinde SSH erişimi; Windows 10 ile birlikte opsiyonel özellik olarak sunulan OpenSSH İstemcisi (OpenSSH Client) üzerinden veya PuTTY, mRemoteNG, MobaXterm gibi 3. parti yazılımlar aracılığıyla gerçekleştirilir.
Win10 OpenSSH İstemcisinin Kontrolü ve Yüklenmesi:
- Kontrol: Windows 10 üzerinde sırasıyla Ayarlar > Uygulamalar ve Özellikler > İsteğe Bağlı Özellikler adımları takip edilir. Yüklü özellikler altında OpenSSH İstemcisi aranır.
- Yükleme: Eğer listede yoksa, Özellik Ekle butonuna tıklanıp arama kutusuna
opensshyazılarak OpenSSH İstemcisi seçilir ve Yükle butonuna basılır.
Win10 Komut İstemi (CMD) Üzerinden Anahtar Üretimi:
- OpenSSH yüklendikten sonra Komut İstemi (cmd) uygulaması “Yönetici Olarak Çalıştır” seçeneği ile başlatılır.
- Komut satırına anahtar üretme komutu girilir:
ssh-keygen -t ed25519 -C "kullanici@domain.com"
- Anahtar dosyaları Windows üzerinde
C:\Users\kullanici_adi\.ssh\dizini altında oluşturulur:
C:\Users\kullanici_adi\.ssh\id_ed25519(Gizli anahtar)C:\Users\kullanici_adi\.ssh\id_ed25519.pub(Açık anahtar)
- Üretilen
id_ed25519.pubdosyası Notepad++, Sublime Text veya Not Defteri ile açılarak kopyalanır ve hedef sunucunun~/.ssh/authorized_keysdosyasına yapıştırılır.
SSH Kimliğini Github’a Kaydetme
Oluşturulan SSH açık anahtarı (id_ed25519.pub), GitHub veya Launchpad gibi bulut servis sağlayıcılarındaki profil hesabına eklenerek, yeni kurulacak Linux sunucularına otomatik aktarım amacıyla saklanabilir.
GitHub Anahtar Ekleme Adımları:
- GitHub’da oturum açılır.
- Sağ üst köşedeki profil simgesine tıklanıp Settings (Ayarlar) seçeneğine girilir.
- Sol gezinme menüsünden SSH and GPG keys başlığı seçilir.
- Açılan sayfada New SSH key (Yeni SSH anahtarı) butonuna tıklanır.
- Title (Başlık): Anahtarın üretildiği bilgisayarı tanımlayan bir isim girilir (Örn: Personal MacBook Pro veya Windows-Workstation gibi).
- Key (Anahtar):
pbcopyveya metin editörü aracılığıyla kopyalanmış olanid_ed25519.pubiçeriği (metinssh-ed25519 ...şeklinde başlar) bu alana yapıştırılır. - Add SSH key butonuna tıklanarak işlem tamamlanır.
SSH Kimliğini İçeri Aktarma
Linux sunucu kurulumu esnasında SSH Setup (SSH Yapılandırması) adımı geldiğinde, GitHub’a kaydedilmiş olan SSH anahtarı doğrudan sunucuya çekilebilir:
- Install OpenSSH server: Linux sunucuya uzak erişim sağlayabilmek için öncelikle kurulum sırasında
[X] Install OpenSSH Serverseçeneği işaretlenmelidir. - Import SSH identity: Açılır menüden
[ from Github ]veya[ from Launchpad ]seçeneği tercih edilir. - Github Username: GitHub kullanıcı adı girilir.
- Allow password authentication over SSH (SSH Üzerinden Parola Doğrulamasına İzin Ver): SSH üzerinden anahtarın yanı sıra parola ile oturum açılmasına da izin verilmek isteniyorsa bu seçenek işaretlenir.
- Done: İşlem tamamlandığında Done butonuna basılır. Sistem GitHub servislerine bağlanarak ilgili kullanıcı adına tanımlı SSH açık anahtarını çeker ve ekranda anahtarın parmak izini (fingerprint) gösterir.
- Onay Sayfası: Parmak izi doğrulama uyarısına
[ Yes ]yanıtı verilerek işlem onaylanır.
Hazır Paketler (Snaps)
SSH ayarlarının ardından kurulum sihirbazında sunucular için popüler olan hazır yazılım paketleri (Snaps) listelenmektedir:
- Paket Seçim Mekanizması: Listelenen yazılımlar arasında ok tuşları ile gezilinir. Seçilmek istenen paketin üzerine gelindiğinde SPACE (Boşluk) tuşuna basılarak işaretleme yapılır. Paket detaylarını görmek için ENTER tuşuna basılır.
- Öne Çıkan Snap Paketleri:
microk8s(Kubernetes),nextcloud(Bulut depolama),wekan(Kanban panosu),docker(Konteyner mimarisi),canonical-livepatch,rocketchat-server,mosquitto(MQTT broker),etcd,powershell,aws-cli,google-cloud-sdk,postgresql10,prometheus,jujuvb. - Seçimler tamamlandıktan sonra ya da ihtiyaç yoksa hiçbiri seçilmeden Done seçeneği üzerinde enter’a basılarak bir sonraki aşamaya geçilir.
Kurulumun Tamamlanması
İsteğe bağlı paket seçiminin ardından işletim sistemi gerekli dosyaları diske kopyalar ve son aşamada yeniden başlatma ekranı belirir:
- Kurulum tamamlandığında alt kısımda yer alan
Reboot Now(Şimdi Yeniden Başlat) seçeneği üzerinde enter’a basılır. - Medya Çıkarma Uyarısı: İşletim sisteminin tekrar kurulum medyasıyla (
.isodosyası) açılmaması için ekranda şu uyarı görüntülenir:Please remove the installation medium, then press ENTER: - VirtualBox veya sanallaştırma yazılımının CD/DVD ortamından ISO kalıbı çıkarılır ve klavyeden ENTER tuşuna basılarak sistemin sabit diskten ön yükleme (boot) yapması sağlanır.
Kurulumu Gerçekleştirilmiş Sisteme SSH ile Bağlanma
Kurulum tamamlanıp sanal makine yeniden başlatıldığında sanal makine yazılımında açılacak olan konsol ekranında ilk oturum açma ve SSH bağlantısı adımları gerçekleştirilir:
Sanal Ağ Adaptörü Yapısı ve IP Adresi Tespiti:
Sanal makine konsolunda oturum açıldıktan sonra ağ kartlarının aldığı IP adreslerini görüntülemek için ip a (veya ip addr) komutu çalıştırılır.
Daha önceki ünitelerde tarif edilen kurulum adımlarında sanal makineye 2 farklı ağ adaptörü tanımlanmıştı:
- 1. Ağ Kartı (
enp0s3): NAT (Network Address Translation) veya Köprü Bağdaştırıcı (Bridged) olarak ayarlanmıştır. Sanal makinenin dış dünyaya ve internete çıkmasını sağlar. NAT modunda varsayılan olarak10.0.2.15IP adresini alır. NAT arkasındaki bu IP adresine dışarıdaki ana makineden (host) doğrudan SSH bağlantısı yapılamaz. - 2. Ağ Kartı (
enp0s8): Yalnızca-Ana Makine Ağı (Host-Only Adapter) olarak yapılandırılmıştır. Sanal makine ile kişisel bilgisayarınız arasında özel bir yerel ağ kurar (Örn:192.168.56.116). SSH bağlantıları bu ağ kartı IP’si üzerinden gerçekleştirilir.
Aşağıdaki tablo ağ yapılandırma türlerinin davranışlarını özetlemektedir:
| Ağ Adaptörü / Modu | Örnek Arayüz Adı | Örnek IP Bloğu | İnternet Erişimi | Ana Makineden Doğrudan SSH Erişimi |
|---|---|---|---|---|
| NAT Modu (1. Kart) | enp0s3 | 10.0.2.x | Var | Yok (Port yönlendirme gerektirir) |
| Köprü Modu (Bridged) | enp0s3 | Ev/Kurum Ağı Bloğu | Var | Var (Yerel ağdaki ayrı IP) |
| Host-Only Modu (2. Kart) | enp0s8 | 192.168.56.x | Yok | Var (Sadece host-sanal arası) |
Terminal Üzerinden İlk SSH Bağlantısı:
Kişisel bilgisayarınızdaki Terminal veya Komut İstemi açılarak enp0s8 kartının aldığı IP adresi üzerinden SSH bağlantı komutu girilir:
ssh ubuntu@192.168.56.116
Sunucu Parmak İzi Onayı (Host Key Fingerprint):
Sunucuya ilk kez bağlanıldığında istemci ekranında güvenlik uyarısı belirir. Klavyeden yes yazılıp ENTER tuşuna basıldığında, sunucunun ED25519 parmak izi istemci bilgisayardaki ~/.ssh/known_hosts dosyasına güvenilen sunucu olarak kaydedilir. Kurulum aşamasında GitHub SSH anahtarı içeri aktarıldığı için sistem kullanıcı parolası sormadan doğrudan kabuk ekranını açar.
🎯 Sınavlık Hap Bilgiler:
- Debian ve RedHat tabanlı dağıtımlarda kurulum sırasında
rootparolası zorunlu olarak istenirken, Ubuntu’da ilk oluşturulan kullanıcıya otomatik olaraksudoyetkisi verilir ve root parolası istenmez.- SSH anahtarı üretme komutu
ssh-keygen -t ed25519 -C "yorum"şeklindedir.-talgoritma türünü (ed25519,rsa),-Cise yorum/e-posta bilgisini ifade eder.- Kullanıcı bilgisayarında
id_ed25519gizli (private) anahtar,id_ed25519.pubise açık (public) anahtardır. Sunucuda oturum açabilmek için açık anahtar hedef sunucudaki~/.ssh/authorized_keysdosyasına eklenmelidir.- macOS sistemlerde SSH açık anahtarını dosyayı açmadan panoya kopyalayan komut
pbcopy < ~/.ssh/id_ed25519.pubkomutudur. Tilda (~) simgesi kullanıcının ev dizinini temsil eder.- Kurulum sırasında GitHub üzerindeki SSH anahtarları
Import SSH identity -> from Githubseçeneği ile doğrudan işletim sistemine çekilebilir.- Sanal makinede 1. Ağ Kartı (NAT /
enp0s3) internete çıkış sağlarken, 2. Ağ Kartı (Host-Only /enp0s8) ana makineden sanal makineye SSH erişimi yapılmasına olanak tanır.- Kurulum tamamlandıktan sonra medya çıkarma uyarısı çıktığında ISO kalıbı çıkarılıp ENTER tuşuna basılmalıdır.
- İlk SSH bağlantısında sunucu parmak izi onayına
yesyazıldığında bu bilgi istemcinin~/.ssh/known_hostsdosyasına kaydedilir.
SANAL MAKİNEDE DİSK İŞLEMLERİ – DİSK BOYUTUNU ARTIRMA
Linux işletim sistemlerinde sunucu performansının düşmemesi ve çalışan servislerin kesintiye uğramaması için kök dizin (/) doluluk oranlarının sürekli izlenmesi gerekir. Sanallaştırma ortamlarında yetersiz gelen disk alanını artırmak için iki temel yöntem bulunur:
- Mevcut diski genişletmek veya,
- Sisteme ikinci bir sanal disk eklemek.
Her iki yöntemde de diskin sanallaştırma yazılımı seviyesinde büyütülmesi tek başına yeterli değildir; eklenen alanın Mantıksal Hacim Yöneticisi (LVM – Logical Volume Manager) ve dosya sistemi seviyesinde genişletilmesi için bir dizi komut sırayla çalıştırılmalıdır.
Mevcut Disk Boyutunu Artırarak Diski Büyütme
Bu senaryoda, sanal makinenin mevcut 40 GB boyutundaki Ubuntu 22.04.vdi diski, sanallaştırma arayüzünden 60 GB’a çıkarılacak ve eklenen 20 GB’lık ham alan LVM üzerinden kök dizine (/) dahil edilecektir.
Adım 1: Sanal Makinenin Güvenli Kapatılması
Disk boyutu değiştirilmeden önce sanal makine komut satırından kapatılmalıdır:
sudo shutdown -h now
-h(halt): Sistem kapatma işleminin durdurma şeklinde olacağını belirtir. (Şayet-rparametresi kullanılsaydı kapatma işlemi yeniden başlatma (reboot) şeklinde gerçekleşirdi).now: Kapatmanın hemen yapılacağını belirtir. (14:44şeklinde ileri bir saat de girilebilir).
Adım 2: VirtualBox Arayüzünden Disk Boyutunu Artırma
- VirtualBox menüsünden Dosya > Sanal Ortam Yöneticisi adımları izlenir.
- Listeden ilgili disk (
Ubuntu 22.04.vdi) seçilir. - Alt kısımdaki Boyut ayar çubuğu 60,00 GB seviyesine getirilir ve Uygula butonuna basılarak pencere kapatılır.
- Sanal makine Başlat butonu ile yeniden çalıştırılır.
Adım 3: SSH Bağlantısı ve Root Yetkisine Geçiş
Sanal makine açıldıktan sonra SSH ile bağlantı sağlanır. Disk yapılandırma işlemleri üst düzey yetki gerektirdiğinden sudo -i komutu ile doğrudan root kullanıcısına geçilir:
ubuntu@ubuntu-local:~$ sudo -i
[sudo] password for ubuntu:
root@ubuntu-local:~#
Adım 4: Disk ve Dosya Sistemi Durumunun İncelenmesi (lsblk ve df -h)
Mevcut disk bloklarını listelemek için lsblk komutu çalıştırılır:
root@ubuntu-local:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 38G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 38G 0 lvm /
lsblkçıktısındasdafiziki diskinin 60 GB olduğu görülür. Ancak kök dizine (/) bağlı olanubuntu--vg-ubuntu--lvmantıksal hacmi halen 38 GB alan kullanmaktadır.- Aktif dosya sistemi kullanımını görmek için
df -hkomutu çalıştırılır:
root@ubuntu-local:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv 38G 7.6G 28G 22% /
/dev/sda2 2.0G 247M 1.6G 14% /boot
df -h çıktısı, sanallaştırma panelinde eklenen 20 GB’lık alanın henüz işletim sisteminin kullanımına sunulmadığını teyit eder.
Adım 5: Boş Alanın Bölümlendirilmesi (cfdisk)
Eklenen 20 GB ham alanı bölümlendirmek için cfdisk aracı çalıştırılır:
cfdisk /dev/sda
- Terminalde açılan
cfdiskarayüzünde ok tuşlarıylaFree space(20G) satırına inilir. - Alt menüden
[ New ]seçilip ENTER’a basılır. Partition size: 20Gifadesi belirdiğinde ENTER ile onaylanır.- Yeni oluşturulan bölüm
/dev/sda4adını alır (Type: Linux filesystem). - Tabloyu diske yazmak için ok tuşlarıyla
[ Write ]seçeneğine gelinir, ENTER’a basılır. - Beliren “Are you sure you want to write the partition table to disk?” uyarısına
yesyazılıp ENTER basılır. [ Quit ]seçilerekcfdiskekranından çıkılır.
Adım 6: Yeni Bölümün Yeniden Başlatmadan Çekirdeğe Tanıtılması (partprobe)
Oluşturulan /dev/sda4 bölümünün işletim sistemi yeniden başlatılmadan çekirdek (kernel) tarafından algılanabilmesi için partprobe komutu çalıştırılır:
root@ubuntu-local:~# partprobe /dev/sda
Önemli Not: Eğer
partprobe /dev/sdakomutu çalıştırılmazsa, sistemin yeni bölümü görebilmesi içinrebootveyashutdown -r nowkomutlarıyla yeniden başlatılması zorunlu hale gelir.
lsblk tekrar çalıştırıldığında /dev/sda4 bölümünün 20G boyutuyla eklendiği görülür:
root@ubuntu-local:~# lsblk
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 2G 0 part /boot
├─sda3 8:3 0 38G 0 part
│ └─ubuntu--vg-ubuntu--lv 253:0 0 38G 0 lvm /
└─sda4 8:4 0 20G 0 part
Adım 7: LVM Fiziksel Hacim (Physical Volume) Oluşturma (pvcreate)
Yeni disk bölümünün LVM tarafından kullanılabilmesi için öncelikle fiziksel hacme dönüştürülmesi gerekir:
root@ubuntu-local:~# pvcreate /dev/sda4
Physical volume "/dev/sda4" successfully created.
Adım 8: Bölüm Grubu (Volume Group) Adının Tespiti ve Genişletilmesi (vgdisplay & vgextend)
Diskin ekleneceği Bölüm Grubu (Volume Group) adını öğrenmek için vgdisplay çalıştırılır:
root@ubuntu-local:~# vgdisplay
--- Volume group ---
VG Name ubuntu-vg
VG Size < 38.00 GiB
Bölüm grubu adının ubuntu-vg olduğu tespit edildikten sonra, vgextend komutu ile yeni fiziksel hacim (/dev/sda4) bu gruba eklenir:
root@ubuntu-local:~# vgextend ubuntu-vg /dev/sda4
Volume group "ubuntu-vg" successfully extended
Adım 9: Mantıksal Hacim (Logical Volume) Disk Yolunun Tespiti ve Büyütülmesi (lvdisplay & lvextend)
Genişletilecek mantıksal hacmin tam disk yolunu öğrenmek için lvdisplay komutu çalıştırılır:
root@ubuntu-local:~# lvdisplay
--- Logical volume ---
LV Path /dev/ubuntu-vg/ubuntu-lv
LV Name ubuntu-lv
VG Name ubuntu-vg
LV Path değerinin /dev/ubuntu-vg/ubuntu-lv olduğu belirlendikten sonra lvextend komutu ile gruptaki tüm boş alan (+100%FREE) mantıksal hacme dahil edilir:
root@ubuntu-local:~# lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
Size of logical volume ubuntu-vg/ubuntu-lv changed from <38.00 GiB (9727 extents) to 57.99 GiB (14846 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
Adım 10: Dosya Sisteminin Canlı Olarak Genişletilmesi (resize2fs)
Mantıksal hacim büyütülse de dosya sistemi (ext4) henüz yeni alanı kullanmaz. Canlı sistemde dosya sistemini genişletmek için resize2fs komutu çalıştırılır:
root@ubuntu-local:~# resize2fs /dev/ubuntu-vg/ubuntu-lv
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required
The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 15202304 (4k) blocks long.
Adım 11: Son Durumun Doğrulanması (df -h)
df -h komutu tekrar çalıştırılarak kök dizinin (/) başarıyla 57 GB seviyesine çıkarıldığı teyit edilir:
root@ubuntu-local:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv 57G 7.6G 47G 14% /
Sanal Makineye Disk Ekleyerek Diski Büyütme
İkinci senaryoda, mevcut diske dokunulmadan VirtualBox arayüzünden sanal makineye 20 GB boyutunda ikinci bir sanal disk (Ubuntu 22.04_1.vdi) eklenecek ve bu yeni disk LVM mimarisine dahil edilerek kök dizin 57 GB’tan 77 GB’a yükseltilecektir.
Adım 1: VirtualBox Üzerinden İkinci Sanal Diskin Oluşturulması ve Bağlanması
- Sanal makine kapalı konumdayken VirtualBox arayüzünde sanal makine seçilip Ayarlar > Depolama bölümüne girilir.
- Denetleyici: SATA başlığının sağındaki Disk Ekle (Sabit Disk Ekle) simgesine tıklanır.
- Açılan pencerede Oluştur butonuna tıklanarak Sanal Disk Sihirbazı başlatılır.
- Sabit disk dosyası türü:
VDI (VirtualBox Disk Kalıbı)seçilir. - Fiziksel sabit diskte depolama:
Değişken olarak ayrılanseçeneği tercih edilir. - Dosya yeri ve boyutu: Disk adı otomatik olarak
Ubuntu 22.04_1.vdişeklinde belirlenir, boyutu 20,00 GB olarak ayarlanır ve Oluştur butonuna basılır. - Disk listesinden yeni oluşturulan
Ubuntu 22.04_1.vdiseçilip Seçin ve ardından Tamam butonlarına basılarak işlem tamamlanır.
Adım 2: Makinenin Başlatılması ve İkinci Diskin Tespiti (lsblk)
Sanal makine başlatılır, SSH ile bağlanılır ve sudo -i ile root olunur. lsblk çalıştırıldığında ikinci diskin sdb (20G) ismiyle sisteme eklendiği görülür:
root@ubuntu-local:~# lsblk
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 2G 0 part /boot
├─sda3 8:3 0 38G 0 part
│ └─ubuntu--vg-ubuntu--lv 253:0 0 58G 0 lvm /
└─sda4 8:4 0 20G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 58G 0 lvm /
sdb 8:16 0 20G 0 disk
Adım 3: İkinci Diskin Bölümlendirilmesi (cfdisk /dev/sdb)
Yeni eklenen sdb diskini bölümlendirmek için cfdisk çalıştırılır:
cfdisk /dev/sdb
- Disk tamamen yeni ve biçimlendirilmemiş olduğundan ekranda bölüm etiket türü seçimi belirir:
Select label type. Buradangpt(GUID Partition Table) seçeneği tercih edilir. Free space(20G) satırı üzerindeyken[ New ]seçilir,Partition Size: 20Gonaylanır.- Oluşan yeni bölüm
/dev/sdb1olur. [ Write ]seçilir, uyarılacak “Are you sure you want to write the partition table to disk?” ifadesineyesyazılıp ENTER basılır.[ Quit ]ilecfdiskuygulamasından çıkılır.
Adım 4: Bölümün Çekirdeğe Tanıtılması (partprobe)
sdb diskindeki yeni bölümün işletim sistemi tarafından algılanması sağlanır:
root@ubuntu-local:~# partprobe /dev/sdb
lsblk çalıştırıldığında sdb1 bölümünün blok listesine eklendiği doğrulanır:
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part
Adım 5: İkinci Diskte LVM Fiziksel Hacmi Oluşturma (pvcreate)
Oluşturulan /dev/sdb1 bölümü LVM fiziksel hacmi haline getirilir:
root@ubuntu-local:~# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
Adım 6: Bölüm Grubunun İkinci Disk ile Genişletilmesi (vgextend)
Mevcut ubuntu-vg bölüm grubu yeni fiziksel hacim (/dev/sdb1) ile genişletilir:
root@ubuntu-local:~# vgextend ubuntu-vg /dev/sdb1
Volume group "ubuntu-vg" successfully extended
Adım 7: Mantıksal Hacmin Büyütülmesi (lvextend)
Mevcut mantıksal hacim (/dev/ubuntu-vg/ubuntu-lv), ikinci diskten gelen boş alanın tamamını kullanacak şekilde büyütülür:
root@ubuntu-local:~# lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
Size of logical volume ubuntu-vg/ubuntu-lv changed from 57.99 GiB (14846 extents) to <77.99 GiB
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
Adım 8: Dosya Sisteminin Canlı Olarak Büyütülmesi (resize2fs)
Dosya sistemi yeni mantıksal hacim boyutuna göre genişletilir:
root@ubuntu-local:~# resize2fs /dev/ubuntu-vg/ubuntu-lv
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required
The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 20444160 (4k) blocks long.
Adım 9: Nihai Disk Durumunun Doğrulanması (df -h)
df -h komutu çalıştırılarak 57.99 GB olan kök dizin alanının 77 GB seviyesine ulaştığı teyit edilir:
root@ubuntu-local:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv 77G 7.6G 66G 11% /
/dev/sda2 2.0G 247M 1.6G 14% /boot
Görüleceği üzere disk eklenmeden önce 57.99 GB olan kök dizinin boyutu disk ekleme sürecinden sonra 77 GB olarak artırılmıştır.
LVM Disk Genişletme İşlem Sırası Karşılaştırmalı Özet
Aşağıdaki tablo, sanal makine üzerinde disk boyutunu artırırken uygulanan iki yöntemin komut silsilesini yan yana özetlemektedir:
| Adım No | İşlem Adımı | 1. Yöntem (Mevcut Diski Genişletme) | 2. Yöntem (İkinci Disk Ekleme) |
|---|---|---|---|
| 1 | Sanallaştırma Paneli | Mevcut .vdi disk boyutu artırılır (40G -> 60G) | Yeni 20G .vdi disk eklenir (Ubuntu 22.04_1.vdi) |
| 2 | Root Yetkisine Geçiş | sudo -i | sudo -i |
| 3 | Disk Bölümlendirme | cfdisk /dev/sda (Oluşan: /dev/sda4) | cfdisk /dev/sdb (GPT etiket, Oluşan: /dev/sdb1) |
| 4 | Çekirdeğe Tanıtma | partprobe /dev/sda | partprobe /dev/sdb |
| 5 | Fiziksel Hacim (PV) | pvcreate /dev/sda4 | pvcreate /dev/sdb1 |
| 6 | Grup Genişletme (VG) | vgextend ubuntu-vg /dev/sda4 | vgextend ubuntu-vg /dev/sdb1 |
| 7 | Hacim Büyütme (LV) | lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv | lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv |
| 8 | Dosya Sistemi Büyütme | resize2fs /dev/ubuntu-vg/ubuntu-lv | resize2fs /dev/ubuntu-vg/ubuntu-lv |
| 9 | Doğrulama | df -h (Kök dizin: 57 GB) | df -h (Kök dizin: 77 GB) |
Özetin Hazırlandığı Ders Kitabına Dair Notlar
- Dizgi ve Matbaa Tırnak İşi Hatası: Kitap metninde SSH anahtarı üretme komutu verilirken
-Cparametresindeki çift tırnak işaretleri düz tırnak ("...") yerine matbaa tırnak işareti (“...”) olarak basılmıştır. Bu komut terminale doğrudan kopyalandığında Bash/Zsh kabuğunda sözdizimi (syntax) hatasına yol açacaktır. Doğrusu düz tırnak kullanmaktır. - Dosya Yollarında Eğik Çizgi Karışıklığı: Windows bölümünde SSH dosya yolları gösterilirken ters eğik çizgi (
\) ile düz eğik çizgi (/) aynı satırda karışık olarak basılmıştır (C:\Users\user/.ssh/id_ed25519). Windows işletim sisteminde dizin ayracı ters eğik çizgidir (C:\Users\user\.ssh\id_ed25519). - Disk Bölüm Numaralandırma Mantığı: Metinde mevcut disk büyütüldüğünde yeni bölümün neden
sda4olduğu açıkça vurgulanmamıştır. Disk üzerindesda1(BIOS boot),sda2(/boot) vesda3(mevcut LVM) bölümleri önceden tanımlı olduğu için 4. bölüm zorunlu olaraksda4adını almaktadır. İkinci disk eklendiğinde ise disk tamamen boş olduğu için oluşturulan ilk bölümsdb1adını alır. partprobeKomutunun Kritik Rolü: Kitaptapartprobeçalıştırılmazsa sistemin yeniden başlatılması gerektiği belirtilmiştir; ancak sınav sorularında öğrencileri yanıltmak amacıylapartprobeyerinelsblkveyadfşıkları konulabilmektedir. Disk tablosunu kernel’e re-read ettiren komutunpartprobeolduğu sınav açısından unutulmamalıdır.
🎯 Sınavlık Hap Bilgiler:
- Linux sistemlerde makineyi güvenli kapatma komutu
sudo shutdown -h nowkomutudur.-h(halt) durdurma anlamına gelir;-rise yeniden başlatır (reboot).- Disk blok durumunu ve bölümlerini görüntüleyen komut
lsblk, dosya sistemi kullanım alanını insan tarafından okunabilir formatta gösteren komutdf -hkomutudur.- Disk bölümlendirmek için kullanılan arayüz komutları
cfdisk /dev/sdaveyacfdisk /dev/sdbşeklindedir. İkinci disk eklendiğinde etiket türü olarakgptseçilir.- Yeni disk bölümünün sistem yeniden başlatılmadan çekirdek tarafından algılanmasını sağlayan komut
partprobe /dev/sda(veyapartprobe /dev/sdb) komutudur.- LVM Adım Sırası:
pvcreate: Bölümü fiziksel hacme (Physical Volume) dönüştürür (pvcreate /dev/sda4).vgdisplay: Bölüm grubu (Volume Group) adını tespit eder (ubuntu-vg).vgextend: Bölüm grubunu genişletir (vgextend ubuntu-vg /dev/sda4).lvdisplay: Mantıksal hacim (Logical Volume) disk yolunu tespit eder (/dev/ubuntu-vg/ubuntu-lv).lvextend: Mantıksal hacmi tüm boş alanı kaplayacak şekilde genişletir (lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv).resize2fs: Dosya sistemini canlı olarak genişletir (resize2fs /dev/ubuntu-vg/ubuntu-lv).
🎯 4. Ünite: Sınavlarda Sorulma Olasılığı Yüksek Hap Bilgiler (Genel Tekrar)
- ssh-keygen: İstemci bilgisayarda SSH anahtarı (public/private key pair) oluşturmak için kullanılan temel komuttur.
- ed25519:
ssh-keygen -t ed25519komutunda-tparametresi ile belirtilen yüksek güvenlikli SSH anahtar türüdür.- id_ed25519.pub: Üretilen açık (public) SSH anahtarının istemci bilgisayarda kaydedildiği varsayılan dosyadır.
- pbcopy: macOS ve bazı Linux sistemlerinde SSH anahtar dosyasını açmadan içeriğini doğrudan panoya kopyalamak için kullanılan komuttur (
pbcopy < ~/.ssh/id_ed25519.pub).- authorized_keys: Sunucuda kullanıcının ev dizini altındaki
.ssh/klasöründe yer alan ve şifresiz SSH girişine izin verilen açık anahtarların eklendiği dosyadır.- OpenSSH İstemcisi: Windows 10 işletim sisteminde komut isteminden
ssh-keygenile anahtar üretebilmek için yüklü olması gereken isteğe bağlı özelliktir.- Github: Kişisel bilgisayarda üretilen SSH anahtarının kaydedilerek Linux kurulum aşamasında parola girmeden sunucuya aktarılmasını sağlayan bulut platformudur.
- ssh kullanici@sanal_makine_ip_adresi: İstemciden uzak sunucuya belirli bir kullanıcı adı ve IP adresi ile SSH bağlantısı başlatma komut kalıbıdır.
- .vdi: VirtualBox sanal makine yazılımında kullanılan varsayılan sanal sabit disk dosyası uzantısıdır.
- ip a: Kurulum sonrasında sanal makinedeki ağ kartlarının aldığı IP adreslerini konsol ekranında görüntüleyen komuttur.
- Köprü Modu (Bridged): Sanal makinenin, kurulduğu ana makine ile aynı ağ bloğundan fakat farklı ve bağımsız bir IP adresi almasını sağlayan ağ modudur.
- Yalnızca Ana Makine Ağı (Host-Only): Sanal makinelerin dış internete kapalı olarak sadece ana makine ve kendi aralarında iletişim kurmasını sağlayan ağ modudur.
- NAT: Sanal makinenin dış internet ortamına ana makinenin IP adresi üzerinden erişmesini sağlayan varsayılan ağ modudur.
- cfdisk /dev/sda: Disk boyutlandırma işleminde diski bölümlendirmek (yeni
sda4veyasdb1bölümü açmak) için çalıştırılan menülü arayüz komutudur.- partprobe /dev/sda: Disk bölümlendirme sonrasında işletim sistemini yeniden başlatmaya (
reboot) gerek kalmadan yeni bölüm tablosunu çekirdeğe bildiren komuttur.- pvcreate /dev/sda4: Yeni oluşturulan disk bölümünü LVM mimarisinde kullanılabilir bir Fiziksel Hacim (Physical Volume) haline getiren komuttur.
- vgdisplay: Diskin ekleneceği Bölüm Grubu Adını (
VG Name, örn:ubuntu-vg) öğrenmek için kullanılan komuttur.- vgextend ubuntu-vg /dev/sda4: Yeni oluşturulan fiziksel hacmi mevcut bölüm grubuna ekleyerek grubu genişleten komuttur.
- lvdisplay: Mantıksal bölüm disk yolunu (
LV Path, örn:/dev/ubuntu-vg/ubuntu-lv) öğrenmek için çalıştırılan komuttur.- lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv: Bölüm grubundaki tüm boş alanı kapsayacak şekilde mantıksal bölümü %100 oranında genişleten komuttur.
- resize2fs /dev/ubuntu-vg/ubuntu-lv: Mantıksal bölüme eklenen yeni alanı dosya sistemine işleyerek kök (
/) dizin boyutunu canlı olarak artıran komuttur.
📚 Kaynakça ve Kaynak Güncelliği: Bu ders notu, Anadolu Üniversitesi Açıköğretim Fakültesi Yayınları’na ait UNIX Sistem Yönetimi ders kitabının Mayıs 2022 Baskısı, (AÖF Yayın No: 3072, E-ISBN: 978-975-06-4367-5) temel alınarak kendi ifadelerimle hazırlanmıştır. Konu bütünlüğünü korumak amacıyla temel kavram ve tanımların anlamı ana kaynağa bağlı kalınarak aktarılmış olup, içerik sınav odaklı kişisel ders notları biçiminde düzenlenmiştir. Bu notlar belirtilen baskıyı esas almakta olup kitabın daha sonraki baskılarını, Anadolum e-Kampüs üzerinden yapılan güncellemeleri veya müfredat değişikliklerini yansıtmayabilir. Sınava hazırlanırken Anadolu Üniversitesi tarafından sunulan güncel ders materyalini kontrol etmeniz önerilir. Kitabın basılı sürümüne Anadolu Üniversitesi Kitap Satış Sistemi, güncel dijital ders materyallerine ise Anadolum e-Kampüs üzerinden ulaşabilirsiniz. Ayrıca bu içerik, Anadolu Üniversitesi tarafından hazırlanmış veya onaylanmış resmî bir ders materyali değildir; kişisel çalışma notları niteliğindedir.





