forked from pisilinux-rs/yali-rs
fix(bootloader): disk listesini sırala, boot medyasını hedeften ele
Kullanıcı sorusu: "önyükleme adımında ilk disk neyse o seçili olması daha mantıklı değil mi." ## "İlk disk" neden doğru bir kural DEĞİL — iki bulgu ### 1. Liste sıralanmıyor `list_block_devices` ne `lsblk` çıktısını ne `/sys/block` çıktısını sıralıyor. Fallback yolunda liste `read_dir` sırasıyla geliyor, yani **önyüklemeden önyüklemeye değişebilir**. "İlk disk" böylece ne sıralı bir kavram ne de kararlı bir varsayılan. ### 2. ⭐ Boot medyası listede — ve hiçbir yerde filtrelenmiyor `detect_drive_type` "USB" döndürüyor ama o değer **tek bir yerde bile okunmuyor**. Canlı ISO'yu boot ettiğiniz USB `available_disks`'te yer alıyordu. "İlk disk" çok yaygın bir kurulumda boot medyasına denk gelir. Önyükleyici hedefi olarak seçilirse BIOS modunda `grub-install --target=i386-pc <usb>` MBR'yi oraya yazar: kurulum biter, sistem AÇILMAZ. ## Düzeltme - `sort_disks()`: çıkarılabilir aygıtlar SONA, dahililer ada göre. Artık "ilk disk" her zaman bir iç disk. - `disk_sort_key`: bölüm numarası sayısal ayrıştırılır; ada göre sıralama `sda10 < sda2` derdi. - Önyükleyici hedef listesinden çıkarılabilir aygıtlar **elenir**. Liste tamamen çıkarılabilir aygıt olursa eski davranışa düşülür (ComboBox boş kalmasın). - UEFI modunda `bootloader_device_hint_dualboot` ipucu gösterilir: çift önyüklemede hangi aygıtı seçmek gerektiği ekranda hiç yazmıyordu. ## Test sırasında çıkan hata İlk `base_disk_name` yazımı `trim_end_matches(is_ascii_digit)`'ı her yola uyguluyordu: `nvme0n1` → `nvme0n`. Sonuç `/sys/block/nvme0n/ removable` aranıyor, NVMe disk çıkarılabilir sayılmıyordu — yani filtre NVMe'de sessizce çalışmıyordu. Aynı hata `installer::device_to_disk` içinde de var ama o işlev BÖLÜM YOLU içindir ve şu an yalnızca test yardımcısından çağrılıyor; canlı bir hatası yok. Yine de `base_disk_name` kendi ayrıştırıcısını kullanıyor ve bu ayrım notla sabitlendi — "basitleştirilirse" NVMe'ler çıkarılabilir sanılır. ## Testler (124 → 129) - diskler ada göre sıralanır - bölüm numaraları sayısal sıralanır (sda10 > sda2) - NVMe/mmcblk/vda isimleri doğru ayrışır (çıplak + bölümlü) - sıralama anahtarı her iki biçimi de doğru verir - çıkarılabilir aygıtlar sona gider Varsayılan seçimin KÖK diski olarak kalması korundu — bu konuda kullanıcıyla konuşulacak, aşağıdaki soru gönderildi. cargo check --all-targets : 0 hata, 0 uyarı cargo test : 129/129 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -387,6 +387,7 @@ bootloader_title = "Önyükleyici Yapılandırması"
|
||||
bootloader_description = "Önyükleyici (GRUB) ayarlarını yapılandırın."
|
||||
bootloader_device_label = "Aygıta kur:"
|
||||
bootloader_device_hint = "(varsayılan: hedef disk)"
|
||||
bootloader_device_hint_dualboot = "Çift önyükleme yapacaksanız burada Windows'un kurulu olduğu diski seçin. UEFI modunda bu aygıtın bölümündeki Windows ESP'sinden \"Windows Boot Manager\" menüye eklenir; seçmezseniz açılışta Windows görünmez."
|
||||
bootloader_timeout_label = "Bekleme süresi:"
|
||||
bootloader_timeout_suffix = "saniye"
|
||||
bootloader_password_label = "GRUB parolası (isteğe bağlı):"
|
||||
|
||||
Reference in New Issue
Block a user