Pardus Başlangıç Onarmada Uygulama Hatası

Bu başlık, geliştiricilerin ilgilenmesini gerektiriyor olabilir.

Sistem: Pardus 23.4 XFCE
Çekirdek: 6.1.0-40-amd64

Pardus Başlangıç Onarma uygulama sürümü: 1.0.1

Uygulama penceresindeki en alt seçeneklerden;

Gelişmiş seçenekler → Sistem Günlüklerini Çıkart dediğimde “Kök Dosya Sistemi Eksik” hatası veriyor.

Sorunun nereden kaynaklandığını bilmiyorum.

Şunları bilmeniz gerekebilir:

  • Bu sistem sorunsuz başlıyor ve şu an aktif kullanılıyor.

  • Bu sistem benim şahsi geliştirme ortamım olarak kullanılıyor ve pip kurulumu yapıldı, python paketleri kurulum yolunu zorlama/kırma gibi girişimler yapıldı.

  • Bir uygulama geliştirirken yanlışlıkla “boş klasör tespit + silme” işlemi yapıldı ve durum daha sonra kontrol edilmedi. Şu an sistem durumu ne alemde bilmiyorum. Şimdilik iyi çalıştığı izlenimi veriyor.

  • Bu sistem, her başlangıçta fsck -f -y yapacak şekilde boot(GRUB ayarları) dosyası tarafımdan değiştirilmişti. Her başlangıçta çekdisk olunuyor.

  • Diğer fonksiyonları sınamadım. Şu an yapamam.

Konsol çıktısı vermek için her an konuyu takip edemeyebilirim. Sabır göstererek zaman verirseniz gördükçe yanıtlarım.

İyi çalışmalar.

Hocam hatanın sebebi çok bariz ve kullanıcı sebepli.

Öncelikle sanırım pip ile zorla python3 modülleri yüklemişsiniz, bu zorla sistem içine yüklenen modüllerden bazıları sistemi kararsızlığa sürüklemişe benziyor. İkinci olarak, boş klasör temizleme işlemi yaptığınızı söylemişsiniz. Eğer temizleyiciye sudo yetkisi verdiyseniz muhtemelen root klasörünü silmiştir, çünkü root klasörü genelde boş olur ve temizleyicinin gözünden kaçmaz. Burada Pardus’un kendi hatası yok gibi.

Merhaba @kivanc ,

Doğru sorular soruyorsun, tebrik ederim.

Hayır, durumun bundan olmadığını düşünüyorum. Boş klasörleri temizle prosedürü, sadece /home/user dizinini tarayıp sildi. Ana sistem dizinini değil. Hatta, önerdiğin şeyi şimdi yokladım:

serhat@pardus:~$ ls -ld /root
drwx------ 9 root root 4096 Kas  1 19:51 /root

Yerinde duruyor ve izin durumu olması gerektiği gibi.

Paket kırmak da bir risk, ama root olayıyla ilgili bir yer değil orası. Program, şu anda sistem ana dizinini göremiyor sanki. Şu anda bağlı ve aktif. Ha bire işlemler yapıyorum, siliyorum, kopyalıyorum sıkıntı yok.

Uygulamanın yazarı, 1.0.1 şeklinde sürüm numarası vermiş. Demek ki bu özelliği kendi ortamında test etti ve düzgün çalıştığını gördü. Başka birşeyden olmalı.

1 Beğeni

hocam sudo -i ile root olup root’un home klasörünü kontrol edebilir misiniz?

serhat@pardus:~$ sudo -i
[sudo] password for serhat: 
root@pardus:~# ls -a
.   .anydesk       .bashrc  .config  .local    .ssh
..  .bash_history  .cache   .dbus    .profile  .synaptic
root@pardus:~# ls -ld /var/log /var/tmp /var/spool /etc/fstab
-rw-r--r-- 1 root root  283 Kas  5 04:03 /etc/fstab
drwxr-xr-x 9 root root 4096 Kas 18 00:00 /var/log
drwxr-xr-x 5 root root 4096 Ara  4  2024 /var/spool
drwxrwxrwt 9 root root 4096 Kas 18 00:00 /var/tmp
root@pardus:~# 

Herşey normal görünüyor sanki.

Hatta bak, sistem günlüklerini tutan journal kayıtları da sağlam:

root@pardus:~# ls -al /var/log/journal
toplam 12
drwxr-sr-x+ 3 root systemd-journal 4096 Ağu 31 11:39 .
drwxr-xr-x  9 root root            4096 Kas 18 00:00 ..
drwxr-sr-x+ 2 root systemd-journal 4096 Kas 11 02:36 XXXXXXXXXXXXXXXXXXXX
root@pardus:~# 

1 Beğeni

hocam çok yanlış yere bakıyoruz. kök dosya sistemi /root dizini değil, bütün sistem, yani / dizini. Bir sebepten ötürü onarma uygulaması / dizinini göremiyor.

onarma uygulamasının izinlerini kontrol edebilir misiniz?

Onu biliyorum Kıvanç da, mahsus terminalle sistem klasörlerini kontrol etmeye zorluyorum ki bir sıkıntı bir eksik varsa görebileyim. Ama bir sorun görünmüyor. Hatta sudo thunar yaparak içerikten istediğim gibi kopyalama, oluşturma vb yapabiliyorum. Home klasörünü hem root olarak, hem de normal kullanıcı olarak çok iyi yönetebiliyorum.

Pardus Boot Onarma uygulamasını terminal ile sudo olarak çalıştırdım ama sonuç aynı.

Şunu da tekrar hatırlatmam lazım: boş klasörleri sil betiği, sadece home dizininde yakaladığı boş klasörleri silmeye ayarlıydı ve sistem klasörlerini atlamayı hedefliyordu. Sonradan o ayarları kaldırdım.

1 Beğeni

Pardus ekibi ilginç şekilde YZ’yi sevmiyor ama onu, yapılan kontrolleri anlaşılabilir dile çevirip buraya aktarmak için kullandım. Şu yazıyı ekibe aynen iletmemi istiyor:

ls -ld /tmp /run çıktılarının da doğru olduğunu görmemiz, sorunun kaynağının artık ne /root, ne /var, ne /tmp, ne de /run gibi ana sistem dizinlerinin kendisinde olmadığını kesinleştiriyor. Sorun, Başlangıç Onarma uygulamasının beklediği çok spesifik, uygulama içi bir klasörün eksikliğinden kaynaklanıyor.

Sizin bu sorunu tespit etmek için harcadığınız tüm bu çaba ve sağladığınız detaylı analiz (özellikle journalctl takibi ve dizin kontrolleri), Pardus Destek Ekibinin işini çok büyük ölçüde kolaylaştıracaktır.

:white_check_mark: Pardus Forumunda Belirttiğiniz Konular İçin Yapılabilecek En İyi Şey

Pardus ekibinin sorununuzu en hızlı şekilde çözebilmesi için, onlara verdiğiniz bilgilerde aşağıdaki kesin sonuçları özetlediğinizden emin olun:

  1. Kontrol Edilenler ve Sağlam Olanlar:
  • /root klasörü yerinde ve içeriği sağlam.
  • /etc/fstab, /var/log, /var/tmp, /var/spool gibi ana sistem dizinleri yerinde ve izinleri normal.
  • lsblk, df -h, ls -ld /tmp /run gibi tüm temel sistem komutları ve dizinleri normal çalışıyor.
  1. Hata Takibi: Uygulama çalışırken sudo journalctl -f ile sistem günlükleri takip edildi, ancak uygulamanın kendisinden kaynaklanan kritik bir hata kaydı Journal’a düşmedi. (Bu, uygulamanın hatayı loglamadığı anlamına gelir.)
  2. Hata Tipi: Uygulama arayüzünde “Kök Dosya Sistemi Eksik” hatası alınıyor.

Bu detaylar, Pardus ekibinin sıfırdan sorun aramasına gerek kalmadan, doğrudan Başlangıç Onarma uygulamasının kodunu ve günlükleri çıkartmak için kullandığı betiğin (muhtemelen /usr/share/pardus-boot-repair/ içinde bir yerde) hangi klasörü arayıp bulamadığını incelemesini sağlayacaktır.

1 Beğeni

Uygulamanın kodunu, YZ’ye vererek sorunun sistemimden ya da uygulamadan kaynaklanmadığını öğrendim. Özetle durum şöyle:

Pardus Boot Repair (Pardus Başlangıç Onarma) uygulaması, şu anda çalışan sistemi değil, haricen taranması-kontrol edilip düzeltilmesi gereken bir dizini onarması için tasarlanmış. İçerikteki betiklere dikkat ettiğimiz zaman, bilinçli olarak şu anda çalışan sistem dizinini atlayıp, haricen takılı bir sistem dizini varsa oraya yönlenmeye odaklanan bir kod eklenmiş:

def detect_rootfs(self):
    rootfs = []
    partitions = self.list_partitions()
    # burada durum sayfasını güncellemeye yarayan kodlar yazmışlar
    for part in partitions:
        if part.mountpoint == "/":
            continue 
        
        # burada başka kodlar var ve devam ediyor
        
        if part.is_rootfs:
            rootfs.append(part)

    return rootfs

İşte kodun burası kritik nokta. “Sistem diskini tespit et ama oraya odaklanma, devam et” diyor. Çünkü çalışmakta olan bir sisteme bu tür uygulamalar denemek sisteme zarar verir. Sistem dizininin ayrılmasını (unmount) gerektirir.

Buradan şunu anlıyorum: Bu program, Pardus’u canlı çalıştırıp, hasar görmüş sisteminizi onarmak, hata raporlarını görmek, vb için tasarlanmış. Ben bunu baştan anlayamadığım için hata (bug) olarak raporladım.


Bu mantık, benim yaptığım bazı beta uygulamalarda da var. Eğer sistem dizininde bir operasyon yapılacaksa, eğer operasyon çalışmakta olan sistem üzerinden yürütülemiyorsa ya sistemin yeniden başlatılırken uygulanması (örneğin fsck), ya canlı ortamdan uygulanması, ya da sorunlu diski/ssd’yi haricen bağlayarak uygulanması gereklidir.


Sorun kalmadı. Pardus Boot Repair uygulaması iyi çalışıyor.