Yeni cevap (2015-03-22)
( Not: . Bu cevap, önceki daha basit ama daha güvenli dosyaların tutmak çünkü Benim ilk cevap güçlüdür salt okunur tarafından seçenekleri fs monte önce . İzni bayrakları Yani zorlayarak yazma izni olmadan dosyaları yazmak için olmaz işler hiç.)
Evet, Debian altında bir paket var: fsprotect ( ana sayfa ).
Canlı oturum değişikliklerine izin vermek için aufs(varsayılan olarak RAM'de unionfs) varsayılan olarak (varsayılan olarak, ancak başka bir araç kullanabilir ) kullanır , böylece yeniden başlatma sırasında her şey unutulur.
Bunları basitçe çalıştırarak yükleyebilirsiniz:
apt-get install fsprotect
Tamamlandığında, çevrimiçi dokümandan:
Daha sonra:
- Düzenleme
/boot/grub/menu.lstveya /etc/default/grub2veya /etc/lilo.confve add " fsprotect=1G" parametreleri çekirdek.
- 1G'yi gerektiği gibi değiştirin.
- Değişiklikleri uygula (yani çalıştır
update-grub)
- Düzenleme
/etc/default/fsprotectdışında başka dosya sistemlerini korumak istiyorsanız /.
- reboot
Ayrıca grub önyükleyicisini parola ile korumak veya üzerinde değişiklik yapmaktan vazgeçmek de isteyebilirsiniz.
Oradan, bazı dosya değişikliklere karşı korunuyorsa,
chmod ugo-w myfile
örnek için kullanırsanız vi myfileve komutla üzerine yazmaya çalışırsanız :w!, bu işe yarayacak ve myfiledeğişmiş olacaksınız . Değiştirilmemiş almak için yeniden başlatabilirsiniz myfile.
Aşağıdaki ilk çözümümle bu bile mümkün değil:
Eski (ilk) cevap:
Evet, güçlü bir çözüm ama güçlü!
R / o'yu kullanılabilir yapma
Sen bazı dizinleri monte etmek zorunda rw gibi /var, /etcbelki ve /home. Bu, aufs veya unionfs kullanılarak yapılabilir . Bunu kullanarak başka bir şekilde seviyorum /dev/shmve mount --bind:
cp -a /var /dev/shm/
mount --bind /dev/shm/var /var
Daha önce, static-var/ var içinde semboller oluşturmak yerine, normal işlemde değişmesi gerekmeyen tüm dizinleri a :
mkdir /static-var
mkdir /static-var/cache
mkdir /static-var/lib
mv /var/lib/dpkg /static-var/lib/dpkg
ln -s /static-var/lib/dpkg /var/lib/dpkg
mv /var/cache/apt /static-var/cache/apt
ln -s /static-var/cache/apt /var/cache/apt
... # an so on
Yani kopyalama, ro yeniden mount zaman /variçinde /dev/shmen dosyalar taşınır olarak çok fazla yer almayacağız /static-varve sadece sembolik bağlar ram kopyalanan edilecektir.
Bunu ince bir şekilde yapmanın en iyi yolu, tam bir güç döngüsü, bir günlük tam çalışma yapmak ve aşağıdakine benzer bir komutu çalıştırmaktır:
find / -type f -o -type f -mtime -1
Böylece hangi dosyaların okuma-yazma bölümünde bulunması gerektiğini göreceksiniz.
Kerestecilik
Bu ana bilgisayarda olduğu gibi, yazılabilir bir statik bellek yoktur, geçmişi ve diğer günlükleri saklamak için uzak bir syslogsunucu yapılandırmanız gerekir .
echo >/etc/syslog.conf '*.* @mySyslogServer.localdomain'
Bu şekilde, sisteminiz herhangi bir nedenle bozulursa, önceki her şey günlüğe kaydedilir.
Yükseltme
Bazıları mount --bindkullanımdayken çalışırken, sistem kullanımdayken böyle bir yükseltme yapmak için (çalıştırma ihtiyacı init 1olmadan, çalışmama süresini azaltmak için), daha basit bir yol, yükseltmeyi yapabilen temiz bir kök oluşturmaktır :
'/' Okuma-yazma modunda yeniden bağlandıktan sonra :
mount -o remount,rw /
for mpnt in /{,proc,sys,dev{,/pts}};do
mount --bind $mnpt /$mnt$mpnt;
done
chroot /mnt
apt-get update && apt-get dist-upgrade
exit
umount /mnt/{dev{/pts,},proc,sys,}
sync
mount -o remount,ro /
Ve şimdi:
shutdown -r now