Ubuntu有类似Deep Freeze的应用程序吗?

我想知道是否还有其他仍在开发中的Deep Freeze for Linux的替代方案,因为我已经在互联网上阅读了一些东西,看起来像开发Deep Freeze的同一家公司有Linux版本,但是项目已经停止。

OFRIS是一个可以冻结Linux的开源应用程序,就像Microsoft Windows操作系统中的Deep Freeze一样。

对于Ubuntu版本9.10,10.04和10.10。 要安装OFRIS,只需按键盘上的Ctrl + Alt + T即可打开终端。 打开时,运行以下命令:

 sudo add-apt-repository ppa:tldm217/tahutek.net -y sudo apt-get update && sudo apt-get install ofris-en -y 

对于Ubuntu版本11.04,11.10,12.04和13.04。 要安装OFRIS,只需按键盘上的Ctrl + Alt + T即可打开终端。 打开时,运行以下命令:

[COPY-FILEFORMAT]

 if [ $(uname -m) == "x86_64" ]; then deb="http://goo.gl/DleLl"; else deb="http://goo.gl/V94Qs"; fi && wget -q $deb -O ofris.deb && sudo dpkg -i ofris.deb && rm ofris.deb 

下图显示OFRIS在13.04上运行

在此处输入图像描述

资料来源: XGeek

默认情况下,Ubuntu和大多数其他Unices拒绝普通用户(学生,来宾)写入系统文件的访问权限。 只有具有适当授权(用户名和密钥)的管理员才能安装软件,更改系统设置或删除分区。

默认情况下,普通用户只能在其主目录和系统的临时目录中写入。 处理一次性访客会话的常用方法是将其主目录放在临时目录中,将临时目录放在主内存中。

如果您想要更加确定,请将系统分区以只读方式挂载,并在其上放置一个存储主内存更改的aufs分区。

fsprotect是一组保护现有文件系统的脚本。 fsprotect非常适合图书馆,网吧等公共电脑。

使用aufs,他们打包一个tmpfs文件系统,强制将更改写入tmpfs文件系统。

根文件系统受initramfs脚本保护。 其他文件系统受init脚本保护。 所有受保护的文件系统都变为只读,即使在断电时也能保证其不变性。

要在所有当前支持的Ubuntu版本中安装fsprotect,请打开终端并键入:

 sudo apt-get install fsprotect 

使用fsprotect的好处是:

  • 文件系统受到保护,并且不会对磁盘​​进行任何更改。
  • 受保护的文件系统以只读方式挂载。 这意味着当计算机未正确关闭时它们不会损坏。
  • 这是非常容易使用。
  • 在某些情况下,它使文件系统访问速度更快。

使用fsprotect的缺点是:

  • 文件系统更改不能超过预定义的字节数限制(由您设置)。
  • 由于大量使用tmpfs,因此您需要有足够的交换空间。

警告:我已经实现了此解决方案并且它确实有效,但是如果在上次启动期间对系统进行了大量更改,则返回快照的合并时间可能会导致启动过程花费很长时间。 在此等待期间,系统可能会看到系统挂起!

还要注意任何有足够知识来装载快照的人都可以对“冻结”状态进行更改。 我已经利用这种可能性来更新“冻结”系统,但同样,这也会增加合并(恢复)快照所需的时间!


LVM快照+ cron + script =“冻结”状态

我最近开始深入研究LVM,我发现在使用LVM及其快照function的机器上可以创建一个“冻结”状态。 当然,此方法需要使用LVM(或至少要冻结分区上的LVM)配置的系统。

摘要:

  • 在LVM分区上安装系统,在PV上为快照保留足够的空间
  • 以您希望的方式配置系统。
  • 创建一个在引导时以root身份运行的cron作业,以合并快照并创建新快照以替换合并的快照
  • 所有连续重新启动都将恢复为快照。 创建的所有快照都是在您创建它的状态下从系统中获取的。
  • 作为额外的好处,可以安装和修改快照(假设您具有root权限),并且可以根据需要更新“冻结”状态。

概念certificate:从干净安装中冻结除一个分区之外的所有内容

安装:

  • 从实时Ubuntu光盘/ USB启动并选择“在不安装的情况下尝试Ubuntu”选项。 这对于使用LVM手动配置分区非常重要
  • 当Ubuntu使用您选择的工具加载磁盘分区时,它有一个占用驱动器整个空间的分区。 这是我正在使用的:
    • /dev/sda (size 1T)
      • /dev/sda1 (大小1T)
  • 接下来在终端上设置/dev/sda1上的LVM。 我将把大部分系统放在一个分区上,但你不必这么做。
    • sudo pvcreate /dev/sda1
    • sudo vgcreate ubuntu-vg /dev/sda1
    • sudo lvcreate -n swap -L 1G ubuntu-vg
    • sudo lvcreate -n unfrozen -L 10G ubuntu-vg
    • sudo lvcreate -n root -l +50%free ubuntu-vg
  • 现在,如果您要运行sudo vgs后跟sudo lvs您应该能够看到卷组“ubuntu-vg”(Vgs输出下的VFree)中剩余的可用空间量等于该空间占用的空间量。逻辑卷“root”(lvs输出下的LSize)。 在我的情况下,我在ubuntu-vg中有506.44g免费,我的根分区是506.44g大。 如果卷组中剩余的可用空间等于我要冻结的分区的大小,我应该能够清除整个分区,并且仍然能够通过重新启动进行恢复。 暂时保留ubuntu-vg中剩余的可用空间。 我们稍后会用它。
  • 现在使用手动分区安装Ubuntu image.png
  • 安装完成后,继续并重新启动到新安装的系统。
  • 一旦启动到新系统,请对其进行配置,使其完全按照计算机每次启动时的方式进行。
    • 如果您没有意外更改快照,并且您不希望快照分区显示在菜单栏中…
      • mkdir /steady
      • 编辑/etc/fstab添加(这是一行) /dev/ubuntu-vg/steadystate /steady ext4 defaults,ro,nofail 0 1作为文件的最后一行
    • 由于更新之类的东西会在每次重启时被吹走,您可能需要关闭它们。
    • 如果您有一个像我一样未解冻的分区,请不要忘记让需要访问它的用户可以访问它
  • 一旦您按照您希望的方式配置系统,请创建以下脚本(您需要root权限)并使用您喜欢的编辑器另存为/root/steadystate.sh请注意,如果在设置LVM时更改了卷组名称,则还需要在下面的脚本中更新它。
  #!/bin/bash LOG=/dev/kmsg # wait for merge in progress echo -n "Reverting to snapshot if present... " | tee -a $LOG merging=1 while [ "$merging" == "1" ]; do /usr/sbin/service lightdm stop #prevent the auto-login/login screen from loading [ "$(sudo lvs -a | grep steadystate)" == "" ] && merging=0 sleep 1 done # create snapshot echo -n "Creating new snapshot... " | tee -a $LOG /sbin/lvcreate -s -n steadystate -l +100%free /dev/ubuntu-vg/root # make sure root comes online before trying to merge while [ ! -e /dev/mapper/ubuntu--vg-root]; do sleep .5; done echo -n "Scheduling reset to snapshot... " | tee -a $LOG /sbin/lvconvert --merge /dev/ubuntu-vg/steadystate echo -n "Starting lightdm... " | tee -a $LOG /usr/sbin/service lightdm start 
  • 最后运行sudo crontab -e ,选择一个编辑器并将@reboot /bin/bash /root/steadystate.sh放在文件的末尾。 保存并关闭( Ctrl + X ;回答Y保存)
  • 重新启动,除了安装在/ unfrozen的分区外,你应该有一个被冻结的系统

这是因为快照是在引导时创建的,即使我们在此之后传递命令以合并快照,但在root的逻辑卷处于活动状态时,无法合并快照。 因此,它会推迟合并操作,直到下次启动/ dev / ubuntu-vg / root,这是在下次重新启动时。 如果系统从实时USB启动,也会触发此操作。

只是为了踢,我在重新启动后进入并运行sudo apt remove --purge firefox* libreoffice-* unity*我通常不建议这样做因为它删除了一些有用的程序并将系统置于可能不太理想的状态州! broken.png 系统甚至无法从GUI正常关闭。 那怎么解决这个问题呢? 重启! rebooted.png 重新启动后,一切都恢复正常。 Firefox,LibreOffice和Unity都回归了他们所属的地方。

我也尝试删除linux *。 这让他的机器无法启动,但是,只是从一个实时的Ubuntu磁盘启动似乎使合并发生。 再次重新启动使系统处于“冻结”状态

如果您希望能够进行更改,则可以(重新)使用rw权限安装快照,然后对其进行chroot并进行任何您希望保持永久性的更改。 这不是完美的,但它是一个概念的certificate。