我正在创建一个可重复使用的 Ubuntu Server 16.04 映像。其想法是,它将从 USB 驱动器启动,提供一段时间的服务,然后关闭。
不幸的是,如果用户移除驱动器,它很可能会损坏。
我没有交换分区(这对 USB 来说很糟糕),但我可以采取其他措施来防止任何持久写入吗?理想情况下,您可以重新启动,驱动器将恢复到其原始状态,有点像实时 USB,但上面有我所有的东西。
答案1
可以使用修改后的来宾用户帐户
16.04 及之前版本的访客用户帐户由 lightdm.conf 控制,因此需要最小的图形界面:
sudo apt install xorg
sudo apt install --no-install-recommends lightdm-gtk-greeter
sudo apt install --no-install-recommends lightdm
sudo apt install --no-install-recommends openbox
一旦以访客身份登录,Ctrl-Alt-F2 将带您进入文本模式。
如果尚未启用“访客会话”,请打开 /etc/lightdm/lightdm.conf 并更改:
allow-guest=true
现在将会有一个访客帐户。
修改访客账户
您可以使用现有的用户帐户,或创建新的用户帐户,作为定制访客会话的实时基础。
如果尚不存在目录,请为访客会话创建一个目录:
sudo mkdir /etc/guest-session
创建符号链接:
sudo ln -s /home/{NAME} /etc/guest-session/skel
其中 {NAME} 是您希望用作基础的用户帐户的名称。
对用户帐户所做的任何更改都将显示在访客帐户中。
会话结束时,对访客帐户的任何更改都将被删除。
答案2
我最终想到的解决方案是将分区标记为只读/etc/fstab
。
我更改了根分区的行,/
从此:
UUID=949e37ad-bc64-47bd-8478-fa6661267d9f / ext4 errors=remount-ro 0 1
到:
UUID=949e37ad-bc64-47bd-8478-fa6661267d9f / ext4 ro,errors=remount-ro 0 1
注意位ro,
之前的errors
。
您可以在Fstab 维基页面。
这也很好,因为一旦系统启动,您还可以根据需要将其重新安装为读写。
rootMount=$(findmnt / -o source -n)
mount -o remount,rw "${rootMount}" /