Raspberry Pi salt okunur kök sistem: overlay ile kalıcı veriyi ayırmak

Overlay dosya sistemi yeniden açılışta değişiklikleri kaybettirebilir. Kiosk imajını, kalıcı uygulama verisini ve bakım penceresini ayrı tasarlayın.
Raspberry Pi OS üzerinde RAM tabanlı overlay açarak kök sistem değişikliklerini geçici tutabilir, uygulama verisini ayrı yazılabilir alanda saklayabilirsiniz. Bu rehber ayarı nasıl açacağınızı ve yeniden başlatma sonrası kalıcılığı nasıl kontrol edeceğinizi gösterir. Kullanılan kayıtlar kişisel veri içermez. Anlatılan komutlar bu yazı kapsamında gerçek cihazda yürütülmedi; mevcut MagicMirror sisteminde overlay’in etkin olduğu iddia edilmiyor.
Başlamadan önce
Çalışan Raspberry Pi OS, yönetici erişimi, sistem yedeği ve yerel kurtarma erişimi hazırlayın. Kalıcı veri alanı bu örnekte /mnt/batuhanyazici-data yoluna önceden bağlanmış ayrı yazılabilir dosya sistemidir. Yalnız klasör oluşturmak yeterli değildir. Böyle bir alanınız yoksa önce ilgili UUID/fstab rehberini uygulayın; disk biçimlendirmeyi bu denemeyle birleştirmeyin. Uygulama verilerini taşımadan önce uygulamanın tutarlı yedeğini alın.
1. Veri alanının gerçekten bağlı olduğunu görün
Terminalde aşağıdaki komutları çalıştırın. İlk komut yolun bir bağlama noktası olduğunu bildirmelidir. İkinci çıktı, kök overlay’den ayrı bir kaynak ve yazılabilir rw seçeneği göstermelidir. Bağlama başarısızsa sonraki yazma adımına geçmeyin; aksi halde geçici kökteki sıradan klasöre veri yazabilirsiniz.
mountpoint /mnt/batuhanyazici-data
findmnt --mountpoint /mnt/batuhanyazici-data -o SOURCE,TARGET,FSTYPE,OPTIONS
Kaynağı ve dosya sistemi türünü kaydedin. Ağ depolaması veya başka bir özel kurulum kullanıyorsanız onun erişim ve tutarlılık koşullarını ayrıca değerlendirin. Bu rehber boş bir kalıcı alanın varlığını uygulama taşınmış gibi kabul etmez; uygulamanın gerçek veri yolu ayrıca bu alana yönlendirilmelidir.
2. Kalıcı alana bir kontrol kaydı yazın
Aşağıdaki blok, bağlama noktası varsa yalnız rehbere ait küçük bir işaret dosyası yazar. Beklenen çıktı alan adını içeren kontrol satırıdır. Bu kontrolü gerçek konuşma, hesap bilgisi veya SQLite hafızasını kullanarak yapmayın. Bağlama yoksa blok yazmayı atlayıp durumu bildirir.
if mountpoint -q /mnt/batuhanyazici-data; then
printf 'batuhanyazici.com kalici alan\n' |
sudo tee /mnt/batuhanyazici-data/batuhanyazici-kalici-kabul.txt
else
printf 'Veri alani bagli degil; devam etmeyin.\n'
fi
Uygulamanın veri yolu hâlâ ev dizinindeyse bu dosyanın başarılı yazılması uygulama verisini korumaz. Hangi ayar, önbellek, günlük ve veri tabanının kalıcı kalacağını envanterleyin. Yalnız gerekli veriyi yazılabilir alana yönlendirin; sırları kamuya açık örnek dosyalara koymayın. Bağlama yokken uygulamanın başlatılmaması ayrıca sağlanmalıdır.
3. Kök overlay’i etkinleştirin
Terminalde resmî yapılandırma aracını açın. Güncel belgede bölüm Performance Options > Overlay File System adındadır; menü numarası sürüme göre değişebilir. İlk denemede aşağıdaki seçimleri uygulayın. Boot bölümünün yazma koruması kök overlay’den bağımsızdır; ayrı onay ve bakım planıyla sonradan etkinleştirilebilir.
sudo raspi-config
- Overlay’in etkinleştirilmesi sorusuna Yes yanıtını verin.
- Bu ilk denemede boot bölümünün yazma korumasına No yanıtını verin; böylece açılış bölümü yazılabilir kalır.
- OK ve Finish ile çıkın; yeniden başlatma isteğini onaylayın. Sorulmazsa oturumdaki işler tamamlandıktan sonra
sudo rebootçalıştırın.
- Veriyi sınıflandır
- Kalıcılığı ayır
- Overlay aç
- Yeniden aç ve doğrula
- Bakım ve geri dönüş
4. Overlay’i ve geçici yazmayı sınayın
Yeniden bağlandıktan sonra aşağıdaki ilk çıktıda kök dosya sistemi türünün overlay olduğunu kontrol edin. Ayrı veri alanı da hâlâ bağlı olmalıdır. Overlay görünmüyorsa geçici dosya denemesini sürdürmeyin; önce ayarın uygulandığını doğrulayın. Dosya sisteminin yazılabilir görünmesi tek başına kalıcılık kanıtı değildir.
findmnt -no FSTYPE,OPTIONS /
mountpoint /mnt/batuhanyazici-data
Kök overlay doğrulandıktan sonra /etc içinde yalnız bu deneme için boş bir işaret oluşturun. touch mevcut işletim dosyalarını değiştirmez; burada adı açıkça verilen kontrol dosyasını hedefler. Ardından normal yeniden başlatma yapın. Kök üzerindeki bu değişikliğin kaybolması beklenir.
sudo touch /etc/batuhanyazici-overlay-kabul
sudo reboot
5. Beklenen sonucu karşılaştırın
Yeni oturumda önce veri alanının hâlâ bağlı olduğunu denetleyin. Aşağıdaki ilk kontrol geçici işaret kaybolduysa mesaj verir; ikinci kontrol kalıcı dosyayı okur. İşaret hâlâ varsa veya kalıcı dosya yoksa başarı ilan etmeyin. Gerçek bağlama kaynağını ve root türünü yeniden inceleyin; hata mesajını gizlemeyin.
test ! -e /etc/batuhanyazici-overlay-kabul && printf 'Gecici kayit kayboldu\n'
mountpoint -q /mnt/batuhanyazici-data &&
sudo cat /mnt/batuhanyazici-data/batuhanyazici-kalici-kabul.txt
Bakım ve geri dönüş
Paket veya kalıcı yapılandırma değişikliği için önce yedek alın. sudo raspi-config içindeki aynı bölümde overlay’i No yapın; boot koruması önceden açılmışsa onu da No seçin. Yeniden başlatın ve kök türünün artık overlay olmadığını doğrulayın. Bakımı bu kalıcı oturumda yapıp yeniden açılışla doğrulayın; ardından gerekiyorsa overlay’i yeniden etkinleştirin.
Geri dönüş de overlay’i kapatıp yeniden başlatma yoluyla yapılır; ayrı veri alanını biçimlendirmek gerekmez. RAM oturumundaki önemli değişiklikleri kapatmadan önce değerlendirin. Overlay, yedekleme veya erişim denetimi yerine geçmez; yazılabilir veriyi, sırları ve oturum sırasındaki uygulama güvenliğini kendiliğinden korumaz.
İlgili rehberler: MagicMirror Projesi: SQLite hafızası ve yedekleme · Ön hazırlık: UUID ile ayrı veri alanı bağlamak.
Nasıl yapılır: ayrıntılı uygulama
Ortam ve ön koşullar: Yazıda belirtilen ürün ve desteklenen pilot ortam — Yetkili izole pilot, belirtilen sürüm/model desteği, mevcut durum kaydı ve değişiklik gerekiyorsa tutarlı yedek/geri erişim gerekir.
- Root ile kalıcı alanı aynı tabloda okuyun
- Uygulama mount bağımlılığını ekleyin
- Bakım oturumunda unit/config kabulünü yapın
- İki yeniden açılışlı geçicilik denemesini tamamlayın
- Bakım ve geri dönüşü ayrı doğrulayın
1. Root ile kalıcı alanı aynı tabloda okuyun
Ana rehberdeki önceden hazırlanmış ayrı yazılabilir alan şartı korunur. Bu ek komutlar format/mount oluşturmaz; eksik disk hazırlığı UUID/fstab yazısındaki tam akışla önce yapılır.
findmnt -no SOURCE,FSTYPE,OPTIONS /
findmnt --mountpoint /mnt/batuhanyazici-data -o SOURCE,FSTYPE,OPTIONS
lsblk -f
df -hT / /mnt/batuhanyazici-data
2. Uygulama mount bağımlılığını ekleyin
Sistem servisi kullanan uygulamada aşağıdaki drop-in veri alanı mount edilmezse uygulamanın root’taki boş klasöre yazmasını önlemeye yardımcı olur. Gerçek unit sistem servisi olmalı; user unit aynı mount-manager kapsamını paylaşmaz. Mevcut ExecStart/User değiştirilmiyor.
[Unit]
RequiresMountsFor=/mnt/batuhanyazici-data
ConditionPathIsMountPoint=/mnt/batuhanyazici-data
3. Bakım oturumunda unit/config kabulünü yapın
Overlay kapalı ve root kalıcı iken kendi mevcut system unit’inize systemctl edit ile farkı ekleyin. Sonra daemon-reload ve planlı hedef restart yapın; gerçek DB/config yolu kalıcı alana yönelmiş olmalı.
sudo systemctl edit batuhanyazici-uygulama.service
sudo systemctl daemon-reload
systemctl show batuhanyazici-uygulama.service -p RequiresMountsFor
systemctl status batuhanyazici-uygulama.service --no-pager
4. İki yeniden açılışlı geçicilik denemesini tamamlayın
Ana akışın /etc geçici işareti kaybolmalı ve ayrı alandaki sentetik işaret kalmalı. Ardından gerçek uygulamanın sentetik veri kaydı da aynı davranışla okunmalı; sadece mount test dosyası uygulama veri yolu kabulü değildir.
5. Bakım ve geri dönüşü ayrı doğrulayın
raspi-config ile overlay/varsa boot korumasını kapatıp reboot yapın; root türü artık overlay olmadan kalıcı ayarı değiştirin. Önceki unit/config farkına dönün ve normal reboot kabulünü tekrarlayın; ayrı veri diskini formatlamayın.
Beklenen sonuç: Root geçici işareti kaybolur, ayrı mount’taki uygulama verisi kalır; bakım oturumu ayrıca doğrulanır.
Sonuç farklıysa: Başarısız aşamada durun; ilgili kayıt/ürün sürümü/ön koşulu inceleyin. Farklı katmanı genel olarak sıfırlamak yerine tek nedeni ayırın.
Geri dönüş: Yalnız bu işlemde değişen öğeyi önceki uyumlu sürüm veya açıkça belirtilen yedek/restore planıyla geri alın; geri alınamaz veri/disk işlemlerini ayar geri dönüşü sanmayın.
Kaynaklar
- Raspberry Pi — Overlay dosya sistemi ve boot yazma koruması
- Linux Kernel — OverlayFS katmanları ve copy-up
Uygulama örnekleri teknik, kaynak ve mahremiyet incelemesinden geçti. Temsili haritalar üretici ekran görüntüsü veya canlı sistem testi olarak sunulmaz. Kullanılan ürün sürümü ve kapsam uygulama öncesinde doğrulanmalıdır.
Okumaya devam edin

Raspberry Pi microSD’den SSD’ye geçiş: açılış zinciri ve geri dönüş planı
USB SSD geçişini disk kopyalamadan ibaret görmeyin: model desteğini, açılış sırasını, gerçek kök aygıtını ve microSD geri dönüşünü doğrulayın.

systemd servis sıkılaştırması: yazılabilir dizini ve gerçek işlevi birlikte sınamak
Linux servislerinde ProtectSystem, NoNewPrivileges ve yazma kapsamını sürüm uyumlu pilot değişikliklerle ve dar geri dönüşle değerlendirin.
