# önder online
Teknoloji ve siber güvenlik dünyasına hoş geldiniz Güncel siber tehditler ve korunma yöntemleri Yapay zekâ ve otomasyonun güvenliğe etkileri Microsoft 365 ve Active Directory güvenlik rehberleri Yazılım geliştirmede güvenlik odaklı yaklaşımlar Teknoloji ve siber güvenlik dünyasına hoş geldiniz Güncel siber tehditler ve korunma yöntemleri

Menu

Debian Seri Konsol (RS232/COM Port) GRUB Yapılandırması - Windows WSL2 ile Düzenleme

Debian Seri Konsol (RS232/COM Port) GRUB Yapılandırması - Windows WSL2 ile Düzenleme

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

  1. Diski Debian sistemine takın
  2. Seri konsol bağlantısını yapın (115200 8N1 ayarlarıyla)
  3. Sistemi başlatın
  4. 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ı

  1. Yedekleme: İşlem öncesi önemli verilerinizi yedekleyin
  2. Unmount: İşlemler bitmeden diski çıkarmayın, veri kaybı olabilir
  3. Yetkilendirme: WSL komutlarını sadece güvendiğiniz disklerde kullanın
  4. 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:

  1. ✅ WSL2 ile diski mount etme
  2. ✅ GRUB yapılandırma dosyasını düzenleme
  3. ✅ Chroot ile GRUB'ı güncelleme
  4. ✅ Güvenli unmount işlemleri
  5. ✅ 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