Untuk salah satu lab saya, saya perlu mempertahankan sistem file yang konsisten. Jadi, saya tidak ingin ada perubahan yang ditulis ke sistem file setelah sistem dimatikan. Saat ini, saya memelihara citra sistem operasi dan menyalinnya secara manual setelah sesi lab selesai.
Saya mencoba mencari tahu apakah ada implementasi open source Deep Freeze perangkat lunak untuk sistem berbasis Fedora. Saya mencoba mempertahankan sistem file yang konsisten sehingga setiap perubahan yang dibuat akan hilang saat sistem di-boot ulang.
Dari tautan ini, saya melihat ada perangkat lunak yang mirip dengan Deep freeze, namun tersedia untuk sistem berbasis Debian. Saya juga menemukan partisi LVM yang tidak terlalu saya pahami.
Sarankan saya beberapa perangkat lunak yang dapat digunakan dalam sistem berbasis Fedora atau solusi lain yang lebih baik.
Jawaban yang Diterima:
Anda dapat mengatur auf di partisi root dan membuat gambar asli hanya dapat dibaca dan semua perubahan disimpan dalam RAM. Dengan begitu siswa dapat membuat perubahan apa pun yang mereka suka (bahkan sebagai root), setelah reboot, status sistem yang terdefinisi dengan baik akan dipulihkan.
Saya melakukan pengaturan ini dengan tepat menggunakan Debian tetapi hal yang sama harus dimungkinkan tanpa terlalu banyak modifikasi pada Fedora juga. Karena klien menjalankan diskless, saya menggunakan boot PXE. Berikut adalah langkah-langkah dasarnya, instruksi terutama diambil dari booting Diskless Debian Linux melalui dhcp/pxe/nfs/tftp/aufs dan Menginstal Debian menggunakan booting jaringan.
Server boot PXE memiliki alamat IP 192.168.1.10 dan juga berfungsi sebagai server TFTP
dan NFS. Ini menggunakan aufs dan sistem file root dipasang hanya-baca. Karena
kepada auf, klien memiliki akses tulis. Semua perubahan berada di memori dan
dihapus saat reboot.
Instal paket yang diperlukan
apt-get install isc-dhcp-server tftp-hpa nfs-kernel-server debootstrap syslinux
Konfigurasikan server DHCP untuk menyajikan citra boot PXE
cat >/etc/dhcp/dhcpd.conf <<EOF
next-server 192.168.1.10; # address of the TFTP server
allow bootp;
allow booting;
subnet 192.168.1.0 netmask 255.255.255.0 {
# clients get a dynamic IP address
range dynamic-bootp 192.168.1.20 192.168.1.254;
filename "pxelinux.0";
option domain-name-servers 192.168.0.10;
option broadcast-address 192.168.1.255;
option routers 192.168.0.10;
}
EOF
Ini mengkonfigurasi DHCP untuk menggunakan server TFTP pada alamat 192.168.1.10
dan muat gambar boot PXE pxelinux.0
.
Konfigurasikan server TFTP
mkdir /srv/tftp
Konfigurasikan server NFS.
Sistem file root dipasang hanya baca melalui NFS.
mkdir /srv/nfsroot
cat >/etc/exports <<EOF
/srv/nfsroot 192.168.1.10/24(ro,no_root_squash,no_subtree_check)
EOF
Mengisi direktori NFS dengan instalasi Debian
debootstrap stable /srv/nfsroot <mirror>
# e.g.
debootstrap stable /srv/nfsroot
http://ftp.sunet.se/pub/Linux/distributions/debian/
Instal alat kernel dan initramfs:
chroot /srv/nfsroot apt-get update
chroot /srv/nfsroot apt-get install initramfs-tools linux-image-amd64
Konfigurasi initramfnya untuk menghasilkan initrd booting NFS:
sed 's/BOOT=local/BOOT=nfs/'
-i /srv/nfsroot/etc/initramfs-tools/initramfs.conf
Muat aufs
modul:
echo aufs >> /srv/nfsroot/etc/initramfs-tools/modules
Konfigurasikan aufs
:
cat >/srv/nfsroot/etc/initramfs-tools/scripts/init-bottom/aufs <<EOF
modprobe aufs
mkdir /ro /rw /aufs
mount -t tmpfs tmpfs /rw -o noatime,mode=0755
mount --move $rootmnt /ro
mount -t aufs aufs /aufs -o noatime,dirs=/rw:/ro=ro
mkdir -p /aufs/rw /aufs/ro
mount --move /ro /aufs/ro
mount --move /rw /aufs/rw
mount --move /aufs /root
exit 0
EOF
Jadikan file tersebut dapat dieksekusi:
chmod +x /srv/nfsroot/etc/initramfs-tools/scripts/init-bottom/aufs
Hasilkan initrd:
chroot /srv/nfsroot update-initramfs -k $(uname -r) -u
Hati-hati jika kernel host dan chroot tidak cocok. Ganti $(uname -r)
dengan kernel yang benar jika perlu.
Salin initrd, image kernel, dan bootloader PXE yang dihasilkan ke root TFTP dan
buat folder untuk konfigurasi PXE:
cp /srv/nfsroot/boot/initrd.img-* /srv/tftp/
cp /srv/nfsroot/boot/vmlinuz-* /srv/tftp/
cp /usr/lib/syslinux/pxelinux.0 /srv/tftp/
mkdir /srv/tftp/pxelinux.cfg
File pxelinux.0
adalah program bootstrap PXELINUX.
Konfigurasikan pemuat boot:
cat >/srv/tftp/pxelinux.cfg/default <<EOF
default Debian
prompt 1
timeout 10
label Debian
kernel vmlinuz-2.6.32-5-amd64 # <- use correct version!
append ro initrd=initrd.img-2.6.32-5-amd64 root=/dev/nfs ip=dhcp
nfsroot=192.168.1.10:/srv/nfsroot
EOF
Ubah kata sandi root
chroot /srv/nfsroot passwd root
Mulai ulang layanan
invoke-rc.d isc-dhcp-server restart
invoke-rc.d tftpd-hpa restart
exportfs -ra