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.lst
veya /etc/default/grub2
veya /etc/lilo.conf
ve 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/fsprotect
dışı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 myfile
ve komutla üzerine yazmaya çalışırsanız :w!
, bu işe yarayacak ve myfile
değ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
, /etc
belki ve /home
. Bu, aufs veya unionfs kullanılarak yapılabilir . Bunu kullanarak başka bir şekilde seviyorum /dev/shm
ve 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 /var
içinde /dev/shm
en dosyalar taşınır olarak çok fazla yer almayacağız /static-var
ve 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 syslog
sunucu 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 --bind
kullanımdayken çalışırken, sistem kullanımdayken böyle bir yükseltme yapmak için (çalıştırma ihtiyacı init 1
olmadan, ç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