우분투에 대한 딥 프리즈와 같은 응용 프로그램이 있습니까?


10

인터넷에서 약간의 내용을 읽었으며 Deep Freeze를 개발 한 동일한 회사가 Linux 버전을 가지고있는 것처럼 보이므로 여전히 개발중인 Linux 용 Deep Freeze의 대안이 있는지 알고 싶습니다. 프로젝트가 중단되었습니다.


왜 그걸 원해? 루트가 아닌 사용자가 시스템 파일을 변경할 수 없도록하십시오.
David Foerster

@DavidFoerster 방금 당신의 논평에 대한 질문을 편집했습니다.
Zignd

안녕하세요이 다른 시도 할 수 있습니다 sourceforge.net/projects/dafturnofris-id

2
(최근?) 우분투의 일반 (즉석) "게스트"사용자는 즉석에서 만들어지고 집이 있으며 /tmp로그 아웃 후에 정리됩니다 ... 충분하지 않습니까?
Rmano

답변:


8

OFRIS는 Linux를 정지시킬 수있는 오픈 소스 응용 프로그램으로 Microsoft Windows 운영 체제의 Deep Freeze와 같습니다.

우분투 버전 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

우분투 버전 11.04, 11.10, 12.04 및 13.04. OFRIS를 설치하려면 키보드에서 Ctrl+ Alt+ T를 눌러 터미널을 엽니 다. 열리면 아래 명령을 실행하십시오.

[복사 파일 형식]

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

아래 이미지는 13.04에서 실행되는 OFRIS를 보여줍니다.

여기에 이미지 설명을 입력하십시오

출처 : XGeek


나는 이것을 15.10에 설치 한 다음 3을 눌러 Freeze를 적용하여 시스템이 고정 모드임을 확인했습니다. 그런 다음 다시 부팅하고 값으로 / var / tmp / myname 파일을 만든 다음 다시 부팅했지만 여전히 파일이 있습니다. 이게 어때요?

정확히 무엇을 의미합니까? 또한 이것이 15.10에서 작동하는지 확인해야합니다. 시스템 정지는 모든 것을 정지하기 전의 상태로 재설정합니다. 알려주세요.
Mitch

3

경고 : 이 솔루션을 구현했지만 작동하지만 스냅 샷으로 돌아 오는 병합 시간으로 인해 마지막 부팅 중에 시스템이 크게 변경되면 부팅 프로세스에 시간이 오래 걸릴 수 있습니다. 이 대기 시간 동안 시스템이 정지 된 것으로 나타날 수 있습니다!

또한 스냅 샷을 마운트하기에 충분한 지식을 가진 사람은 "동결"상태를 변경할 수 있다는 점에 유의하십시오. "고정 된"시스템을 업데이트 할 수있는 가능성을 이용했지만 스냅 샷을 병합 (복귀)하는 데 걸리는 시간이 늘어날 수 있습니다!


LVM 스냅 샷 + cron + 스크립트 = "동결"상태

최근에 LVM을 파헤 치기 시작했으며 LVM을 사용하여 머신에서 "고정 된"상태를 생성 할 수 있으며 스냅 샷 기능이 생겼습니다. 물론이 방법을 사용하려면 LVM (또는 파티션에서 LVM을 고정해야 함)을 사용하여 구성된 시스템이 필요합니다.

요약:

  • 스냅 샷을 위해 PV의 충분한 공간을 확보하여 LVM 파티션에 시스템을 설치하십시오.
  • 원하는 방식으로 시스템을 구성하십시오.
  • 부팅시 루트로 실행되는 크론 작업을 생성하여 스냅 샷을 병합하고 새 스냅 샷을 생성하여 병합 된 스냅 샷을 교체합니다
  • 모든 연속 재부팅은 스냅 샷으로 되돌아갑니다. 생성 된 모든 스냅 샷은 시스템을 생성 한 상태로 시스템에서 생성됩니다.
  • 추가 보너스로 스냅 샷을 마운트 및 수정 (루트 권한이있는 경우) 할 수 있으며 필요한 경우 "동결"상태를 업데이트 할 수 있습니다.

개념 증명 : 하나의 파티션을 제외한 모든 항목을 새로 설치에서 고정

설치 :

  • 라이브 Ubuntu 디스크 / USB에서 부팅하고 "설치하지 않고 Ubuntu 사용"옵션을 선택하십시오. 이것은 LVM으로 파티션을 수동으로 구성 할 때 중요합니다
  • Ubuntu가 드라이브를 전체 공간을 차지하는 하나의 파티션을 갖도록 선택한 도구를 사용하여 디스크 파티션을로드 할 때. 내가 함께하고있는 일은 다음과 같습니다.
    • /dev/sda (사이즈 1T)
      • /dev/sda1 (사이즈 1T)
  • 다음으로 터미널에서 LVM을 설정합니다 /dev/sda1. 대부분의 시스템을 단일 파티션에 배치하려고하지만 꼭 그럴 필요는 없습니다.
    • 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"(vg 출력 아래 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하십시오
    • 재부팅 할 때마다 업데이트와 같은 항목이 사라 지므로 업데이트를 해제 할 수 있습니다.
    • / unfrozen에있는 것과 같은 고정되지 않은 파티션이있는 경우 해당 파티션에 액세스해야하는 사용자가 해당 파티션에 액세스 할 수 있도록하는 것을 잊지 마십시오
  • 시스템이 원하는 방식으로 정확하게 구성되면 다음 스크립트를 작성하고 (루트 권한이 필요함) /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에 마운트 된 파티션을 제외하고 시스템이 정지되어 있어야합니다.

이것은 부팅시 스냅 샷이 생성되기 때문에 작동하며 그 직후 스냅 샷을 병합하는 명령을 전달하더라도 루트의 논리 볼륨이 활성화되어있는 동안 스냅 샷을 병합 할 수 없습니다. 따라서 다음에 다시 부팅 할 때 / dev / ubuntu-vg / root가 활성화 될 때까지 병합 작업을 연기합니다. 이 작업은 시스템이 라이브 USB에서 부팅 된 경우에도 트리거됩니다.

단지 킥을 위해, 재부팅 후 들어 sudo apt remove --purge firefox* libreoffice-* unity*와서 유용한 프로그램을 제거하고 시스템을 바람직하지 않은 상태로 만들 수 있기 때문에 일반적으로 권장하지 않습니다! broken.png GUI에서 시스템이 제대로 종료되지 않았습니다. 그렇다면 어떻게 해결할 수 있습니까? 재부팅하십시오! rebooted.png 다시 부팅하면 모든 것이 정상으로 돌아 왔습니다. Firefox, LibreOffice 및 Unity는 모두 원래 있던 곳입니다.

나는 또한 리눅스 *를 제거하려고 시도했다. 이로 인해 그는 머신을 부팅 할 수 없었지만, 라이브 Ubuntu 디스크에서 부팅하는 것만으로 병합이 이루어지는 것처럼 보였습니다. 다시 시작하면 시스템이 "냉동 된"상태가됩니다.

변경을 원한다면 rw 권한으로 스냅 샷을 다시 마운트 한 다음 chroot하여 영구적으로 유지하려는 변경을 수행 할 수 있습니다. 이것은 완벽하지는 않지만 개념 증명입니다.


1

기본적으로 Ubuntu 및 대부분의 다른 Unices는 일반 사용자 (학생, 손님)가 시스템 파일에 대한 액세스를 거부합니다. 적절한 인증 (사용자 이름 및 키)을 가진 관리자 만 소프트웨어를 설치하거나 시스템 설정을 변경하거나 파티션을 삭제할 수 있습니다.

일반 사용자는 기본적으로 홈 디렉토리와 시스템의 임시 디렉토리에만 쓸 수 있습니다. 일회성 게스트 세션을 처리하는 일반적인 방법은 홈 디렉토리를 temp 디렉토리에, temp 디렉토리를 기본 메모리에 두는 것입니다.

추가로 확실하게하려면 시스템 파티션을 읽기 전용으로 마운트하고 주 메모리에 변경 사항을 저장 하는 aufs 파티션을 놓으 십시오.


1

fsprotect는 기존 파일 시스템을 보호하는 스크립트 세트입니다. fsprotect는 라이브러리, 인터넷 카페 등의 공용 컴퓨터에 적합합니다.

auf를 사용하여 tmpfs 파일 시스템에 변경 사항을 강제로 기록하도록 tmpfs 파일 시스템을 압축합니다.

루트 파일 시스템은 initramfs 스크립트로 보호됩니다. 다른 파일 시스템은 init 스크립트로 보호됩니다. 모든 보호 된 파일 시스템은 읽기 전용이되어 전원이 꺼진 경우에도 불변성을 보장합니다.

현재 지원되는 모든 Ubuntu 버전에 fsprotect를 설치하려면 터미널을 열고 다음을 입력하십시오.

sudo apt-get install fsprotect

fsprotect를 사용하면 다음과 같은 이점이 있습니다.

  • 파일 시스템은 보호되며 변경 사항은 디스크에 기록되지 않습니다.
  • 보호 된 파일 시스템은 읽기 전용으로 마운트됩니다. 이것은 컴퓨터가 잘못 꺼 졌을 때 손상되지 않았 음을 의미합니다.
  • 사용하기 매우 쉽습니다.
  • 경우에 따라 파일 시스템 액세스 속도가 빨라집니다.

fsprotect 사용의 단점은 다음과 같습니다.

  • 파일 시스템 변경은 바이트 단위로 사전 정의 된 한계를 초과 할 수 없습니다 (사용자가 설정).
  • tmpfs가 많이 사용되므로 적절한 스왑 공간이 필요합니다.

Ubuntu 16.04.2에서 설치가 실패합니다. 문제는 touchinitram 스크립트에서 잘못된 참조 입니다. 그것은을 가리키는 /usr/bin/touch것이 아니라 /bin/touch. 강제로 작동 할 수 있지만 설치되어 있어도 네트워크 작동이 중지됩니다.
b_laoshi

잘못된 커널 또는 헤더 파일이없는 커널을 사용하고 있기 때문에 네트워크 작동이 중지 될 수 있습니다. 컴퓨터가 재부팅되면 제조업체의 스플래시 화면이 사라질 때까지 기다린 다음 Shift 키를 눌러 GRUB 부팅 옵션을 표시하십시오. 자주색 GRUB 화면에서 Ubuntu에 대한 고급 옵션을 선택 하고 Enter를 누르십시오. 커널 목록을 보여주는 새로운 자주색 화면이 나타납니다. 다른 커널을 선택하고 Enter를 누르십시오.
karel

실제로 모든 업데이트가 포함 된 새로운 설치입니다. 이전 커널을 사용해 보았고 처음에는 네트워킹으로 부팅했지만 fsprotect가 이전 커널에 번들로 제공되지 않았다는 것을 깨달았습니다. 모든 커널을 업데이트했는데 두 커널에서 부팅 할 때 네트워킹이 없습니다.
b_laoshi

1
grub에서 fsprotect 옵션을 제거하고 initramfs를 업데이트하면 fsprotect가 비활성화되고 네트워크가 다시 작동합니다. 분명히 fsprotect에는 네트워킹을 방해하는 것이 있습니다.
b_laoshi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.