Bu yazıda, Windows 10/11 üzerinde WSL2 (Windows Subsystem for Linux) kullanarak Debian kurulu bir diski mount edip GRUB yapılandırmasını nasıl düzenleyeceğinizi adım adım anlatacağım.
Embedded sistemler, sunucular veya headless (monitörsüz) bilgisayarlarda Debian kurulumu yaparken seri konsol (RS232/COM port) üzerinden erişim sağlamak yaygın bir ihtiyaçtır. Ancak kurulum sırasında seri konsol desteği aktif olsa bile, GRUB bootloader'ın varsayılan olarak VGA çıkışına yönlendirilmiş olması, boot sonrası seri konsol üzerinden sisteme erişimi engelleyebilir.
Senaryo
- Durum: Debian kurulumu seri konsol üzerinden başarıyla tamamlandı
- Problem: Reboot sonrası GRUB menüsü VGA çıkışına gidiyor, seri konsoldan görünmüyor
- Çözüm: GRUB'ı seri konsol için yapılandırma
- Yöntem: Windows WSL2 kullanarak diski mount edip yapılandırma dosyalarını düzenleme
Gereksinimler
- Windows 10 (2004 ve üzeri) veya Windows 11
- WSL2 kurulu ve aktif
- Yönetici (Administrator) yetkisi
- Debian kurulu USB/harici disk
Adım 1: WSL2 Kurulumu (Eğer Kurulu Değilse)
PowerShell'i yönetici olarak açın ve şu komutu çalıştırın:
wsl --install
Kurulum tamamlandıktan sonra bilgisayarı yeniden başlatın.
WSL2 versiyonunu kontrol edin:
wsl --version
Adım 2: Debian Diskini Tespit Etme
PowerShell'i yönetici olarak açın ve sistemdeki tüm diskleri listeleyin:
wmic diskdrive list brief
Örnek Çıktı:
Caption DeviceID Model Partitions Size
KXG6AZNV512G TOSHIBA \\.\PHYSICALDRIVE0 KXG6AZNV512G TOSHIBA 3 512105932800
TOSHIBA STOR.E ALU 2S USB Device \\.\PHYSICALDRIVE1 TOSHIBA STOR.E ALU 2S USB Device 2 240054796800
Bu örnekte Debian kurulu disk PHYSICALDRIVE1 üzerinde.
Adım 3: Diski WSL2'ye Bağlama
Tespit ettiğiniz diski WSL2'ye mount edin:
wsl --mount \\.\PHYSICALDRIVE1 --bare
Çıktı:
The operation completed successfully.
--bare parametresi diski ham olarak bağlar, böylece tüm bölümlere erişebilirsiniz.
Adım 4: WSL Terminaline Geçiş
wsl
Artık Linux terminal ortamındasınız.
Adım 5: Disk Bölümlerini Görüntüleme
Bağlanan diskin bölümlerini kontrol edin:
lsblk
Örnek Çıktı:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 388.4M 1 disk
sdb 8:16 0 186M 1 disk
sdc 8:32 0 4G 0 disk [SWAP]
sdd 8:48 0 223.6G 0 disk
├─sdd1 8:49 0 219.6G 0 part
├─sdd2 8:50 0 1K 0 part
└─sdd5 8:53 0 4G 0 part
sde 8:64 0 1T 0 disk /mnt/wslg/distro
/
Bu örnekte:
- sdd → Ana disk (223.6G)
- sdd1 → Debian root bölümü (219.6G)
- sdd5 → Swap bölümü (4G)
- sdc → Ayrı bir swap alanı (4G)
Adım 6: Debian Root Bölümünü Mount Etme
Mount noktası oluşturun:
sudo mkdir -p /mnt/debian
Root bölümünü mount edin (bizim örneğimizde sdd1):
sudo mount /dev/sdd1 /mnt/debian
Başarılı olup olmadığını kontrol edin:
ls /mnt/debian
Beklenen Çıktı:
bin boot dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
Eğer bu klasörleri görüyorsanız, doğru bölümü mount ettiniz.
Adım 7: GRUB Yapılandırma Dosyasını Düzenleme
GRUB'ın ana yapılandırma dosyası /etc/default/grub konumundadır:
sudo nano /mnt/debian/etc/default/grub
Yapılandırma Parametreleri
Dosyaya aşağıdaki satırları ekleyin veya mevcut olanları düzenleyin:
# Seri terminal ve konsol çıkışını etkinleştir
GRUB_TERMINAL="serial console"
# Seri port ayarları
# --speed=115200 : Baud rate (veri hızı)
# --unit=0 : İlk seri port (COM1/ttyS0)
# --word=8 : 8 veri biti
# --parity=no : Parite kontrolü yok
# --stop=1 : 1 stop bit
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
# Kernel parametreleri - hem VGA hem seri konsola çıktı gönder
GRUB_CMDLINE_LINUX="c c
# GRUB menü timeout süresi (saniye)
GRUB_TIMEOUT=5
Parametre Açıklamaları
| Parametre | Açıklama |
|---|---|
GRUB_TERMINAL="serial console" |
Hem seri hem VGA çıkışını aktif eder |
GRUB_TERMINAL="serial" |
Sadece seri konsol (VGA yok) |
c> |
VGA konsol çıkışı |
c> |
Seri konsol (ttyS0 = COM1) |
115200n8 |
115200 baud, parite yok, 8 bit |
Farklı COM Portları
| COM Port | Linux Device | Unit Numarası |
|---|---|---|
| COM1 | ttyS0 | --unit=0 |
| COM2 | ttyS1 | --unit=1 |
| COM3 | ttyS2 | --unit=2 |
| COM4 | ttyS3 | --unit=3 |
Kaydetme:
- Ctrl+O → Kaydet
- Enter → Onayla
- Ctrl+X → Çık
Adım 8: Chroot ile GRUB'ı Güncelleme
GRUB yapılandırma dosyasını düzenlemek yeterli değildir. update-grub komutu ile gerçek GRUB yapılandırma dosyasını (grub.cfg) oluşturmalıyız.
Sistem Dizinlerini Bağlama
Chroot işleminin düzgün çalışması için gerekli sistem dizinlerini bağlayın:
sudo mount --bind /dev /mnt/debian/dev
sudo mount --bind /dev/pts /mnt/debian/dev/pts
sudo mount --bind /proc /mnt/debian/proc
sudo mount --bind /sys /mnt/debian/sys
Chroot Ortamına Giriş
sudo chroot /mnt/debian
Artık sanki Debian sistemi içindeymişsiniz gibi komut çalıştırabilirsiniz.
GRUB'ı Güncelleme
update-grub
Örnek Çıktı:
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.1.0-13-amd64
Found initrd image: /boot/initrd.img-6.1.0-13-amd64
Adding boot menu entry for UEFI Firmware Settings ...
done
Chroot'tan Çıkış
exit
Adım 9: Sistemleri Unmount Etme
Ters sırayla tüm mount işlemlerini geri alın:
# Bind mount'ları kaldır
sudo umount /mnt/debian/dev/pts
sudo umount /mnt/debian/dev
sudo umount /mnt/debian/proc
sudo umount /mnt/debian/sys
# Ana bölümü unmount et
sudo umount /mnt/debian
# WSL'den çık
exit
Adım 10: Diski WSL'den Ayırma
PowerShell'de:
wsl --unmount \\.\PHYSICALDRIVE1
Adım 11: Diski Güvenli Çıkarma
Windows görev çubuğunda "Safely Remove Hardware" ikonuna tıklayın ve USB diski güvenli şekilde çıkarın.
Adım 12: Test ve Doğrulama
- Diski Debian sistemine takın
- Seri konsol bağlantısını yapın (115200 8N1 ayarlarıyla)
- Sistemi başlatın
- GRUB menüsünün seri konsol üzerinden göründüğünü doğrulayın
Terminal Emülatör Ayarları:
- Baud Rate: 115200
- Data Bits: 8
- Parity: None
- Stop Bits: 1
- Flow Control: None
Popüler terminal programları:
- Windows: PuTTY, TeraTerm, RealTerm
- Linux: minicom, screen, picocom
- macOS: screen, minicom
Sorun Giderme
GRUB Menüsü Hala Görünmüyor
Kontrol 1: GRUB yapılandırmasını doğrulayın
sudo mount /dev/sdd1 /mnt/debian
cat /mnt/debian/boot/grub/grub.cfg | grep -i serial
Çıktıda serial --speed=115200 gibi satırlar görmelisiniz.
Kontrol 2: Seri port ayarlarını doğrulayın
- Doğru COM portu seçildi mi?
- Kablo bağlantısı sağlam mı?
- Terminal emülatör ayarları doğru mu?
Chroot Sırasında Hata
Hata: chroot: failed to run command '/bin/bash': Exec format error
Çözüm: Farklı mimari (ARM vs x86) sorunu olabilir. WSL2'nin x86_64 olduğundan emin olun:
uname -m
Update-grub Çalışmıyor
Manuel GRUB.CFG Düzenleme (Geçici Çözüm):
sudo nano /mnt/debian/boot/grub/grub.cfg
En üste ekleyin:
serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
terminal_input serial console
terminal_output serial console
Her linux satırının sonuna ekleyin:
c c
Not: Bu yöntem kernel güncellemelerinde kaybolur, kalıcı değildir.
Alternatif Yöntemler
1. Rescue Mode ile Yapılandırma
Kurulum medyasından rescue mode'a girin:
/install.amd/vmlinuz vga=normal initrd=/install.amd/initrd.gz rescue/enable=true c ---
2. Linux Live USB Kullanma
Ubuntu veya Debian Live USB ile boot edip diski mount edin.
3. Direkt Debian Sisteminde
Eğer sistem bir şekilde açılıyorsa direkt üzerinde:
sudo nano /etc/default/grub
sudo update-grub
Gelişmiş Yapılandırma
Sadece Seri Konsol (VGA Yok)
GRUB_TERMINAL=serial
GRUB_CMDLINE_LINUX="c
Farklı Baud Rate (Örnek: 9600)
GRUB_SERIAL_COMMAND="serial --speed=9600 --unit=0 --word=8 --parity=no --stop=1"
GRUB_CMDLINE_LINUX="c c
Timeout Ayarları
GRUB_TIMEOUT=10 # 10 saniye bekle
GRUB_TIMEOUT=0 # Direkt boot et
GRUB_TIMEOUT=-1 # Süresiz bekle
Güvenlik Notları
- Yedekleme: İşlem öncesi önemli verilerinizi yedekleyin
- Unmount: İşlemler bitmeden diski çıkarmayın, veri kaybı olabilir
- Yetkilendirme: WSL komutlarını sadece güvendiğiniz disklerde kullanın
- Doğrulama: Her değişiklikten sonra yapılandırmayı doğrulayın
Özet
Bu yazıda Windows 10/11 üzerinde WSL2 kullanarak Debian kurulu bir diskin GRUB yapılandırmasını seri konsol için nasıl düzenleyeceğinizi öğrendiniz:
- ✅ WSL2 ile diski mount etme
- ✅ GRUB yapılandırma dosyasını düzenleme
- ✅ Chroot ile GRUB'ı güncelleme
- ✅ Güvenli unmount işlemleri
- ✅ Seri konsol ayarları
Bu yöntem sayesinde headless Debian sistemlerinizi Windows ortamından rahatlıkla yapılandırabilirsiniz.
Kaynaklar
Lisans ve İletişim
Bu makale MIT lisansı altında yayınlanmıştır. Sorularınız için benimle iletişime geçebilirsiniz.
Son Güncelleme: Ocak 2026
Önder AKÖZ
Etiketler: debian, grub, serial-console, wsl2, linux, embedded-systems