Ubuntu를 "전력 손실 방지"로 만들려면 어떻게합니까?


18

나는 매일 '키오스크'사용을 위해 무인 시스템을 운영하고 싶습니다.

그러나 누군가 전에 적절한 종료를 수행하지 않고도 시스템 전원을 끌 수 있습니다. 기본적으로 Ubuntu는 전원 손실로 종료되지 않습니다. 전원 손실 후 재부팅 한 후 파일 시스템을 확인하기 위해 fsck가 실행되고 fsck가 완료된 후 시스템을 재부팅하도록 지시 할 수 있습니다. 따라서 구성 데이터가 손상되지 않더라도 전원이 꺼진 후 시스템이 제대로 부팅되지 않을 수 있습니다. 그래서 몇 가지 해결 방법을 테스트했습니다.

  1. 루트 마운트 fsck 우선 순위를 0( fstab루트 항목의 마지막 필드)로 변경하여 fsck모든 전원 손실 후 실행을 방지하십시오 . 그러나 시스템은 루트 마운트 된 읽기 전용으로 부팅 될 수 있으며, 이는 많은 서비스에서 예상하지 않으며 그래픽 로그인 대신 콘솔 로그인 프롬프트를 표시합니다.

  2. 교체 errrors=remount-roerrors=continue. 이것은 일치하지 않는 파일 시스템으로 인해 추가 데이터 손실이 발생할 수 있다는 나쁜 느낌을줍니다. 그러나 fsck다시 활성화하면 전원 손실 후 시스템의 부팅 가능성이 높아집니다. 그래서 나는 1) 떨어졌다.

  3. 부팅 실패 후 일반적인 기본 옵션 시간 초과를 사용하도록 grub2를 재구성하십시오. 이를 위해에 추가 GRUB_RECORDFAIL_TIMEOUT=0했습니다 /etc/default/grub.

그러나 이러한 해킹으로 인해 시스템 전원 손실이 방지되는지 알기가 어렵습니다. 어떤 아이디어? 더 이상 할 수 있습니까?


1
나는 당신이 달성하려는 것을 실제로 얻지 못합니다. "전력 손실 방지"는 무엇을 의미합니까? 조금 지울 수 있습니까?
André Stannek

명확한 소개를 추가했습니다. 나는 전력 손실 후 유지 보수 상호 작용없이 평소에 다시 빨리 일어나는 시스템을 좋아합니다.
dronus

답변:


16

키오스크 애플리케이션의 경우 읽기 전용 루트 파티션을 사용하여 문제를 해결합니다. 또한 다음에 다시 부팅 할 때 사용자가 변경하거나 저장 한 내용은 취소됩니다.

대부분의 응용 프로그램 요구에 쓰기 가능한 루트를 제공하기 위해 overlayfs를 사용하여 쓰기 가능한 ram tempfs로 읽기 전용 파티션을 오버레이 할 수 있습니다.

https://help.ubuntu.com/community/aufsRootFileSystemOnUsbFlash 의 맨 아래에 이러한 설정을 작성하는 데 도움이되는 스크립트가 있습니다 . 스크립트에는이를 설정하기위한 지시 사항이 포함되어 있습니다.

  • 파일을 / etc / initramfs-tools / scripts / init-bottom / root-ro에 넣습니다.
  • sudo chmod 0755 root-ro
  • sudo update-initramfs -u

나는 추가 제안 GRUB_RECORDFAIL_TIMEOUT=0/etc/default/grub실행 sudo update-grub도, 그렇지 않으면 부팅 메뉴가 시간 제한없이 나타날 수 있습니다.

그런 다음 재부팅하십시오. 그런 다음 기계는 읽기 전용 모드에서 시작하며이 모드는로 확인할 수 있습니다 mount. 다음에 다시 부팅하면 적용된 모든 변경 사항이 사라집니다. 변경, 소프트웨어 및 업데이트 등을 설치하려면 GRUB 메뉴로 들어가서을 눌러 e부팅 명령 줄을 변경 한 다음 disable-root-ro=true커널로 시작하는 줄을 추가 하면됩니다. 부팅을 계속하려면 F10을 누르십시오. 그런 다음 mount평소와 같이 루트가 쓰기 가능으로 마운트되었는지 확인할 수 있습니다 . 시스템을 다시 읽기 전용으로 변경하고 재부팅하십시오.


읽기 전용 루트 파일 시스템이 가장 먼저 떠 올랐기 때문에 +1입니다.
Nathan Osman

이것은 실제로 꽤 잘 작동합니다. 그러나 읽기 / 쓰기 마운트 후에는 시스템을 다시 부팅하여 모든 것이 깨끗한 지 확인해야합니다. GRUB failsafe와 같은 것은 완전히 닫히지 않았거나 fsck가 그렇지 않다는 것을 보여주는 브라우저입니다. 이 경우 다른 시간에 읽기 / 쓰기를 재부팅 한 후 다시 완전히 종료해야합니다.
dronus

9

불완전한 재부팅 후 (예 : 전원 손실 또는 재설정 버튼을 누르거나 커널 패닉이 발생한 경우), fsck에서 파티션을 복구하기 위해 "y"를 누르라는 메시지가 표시되지 않습니다.

이를 피하려면 / etc / default / rcS를 편집하고 다음을 변경하십시오.

FSCKFIX=no

에:

FSCKFIX=yes

이렇게하면 메시지가 표시되지 않고이 복구가 자동으로 실행됩니다.

단점은 데이터를 잃을 수 있으며 백업되지 않은 중요한 것이 있으면 하드 드라이브를 꺼내서 복제하는 것이 좋습니다.

예를 들어, 하드 드라이브 컨트롤러에 결함이 있고 fsck가 파티션을 고장난 것으로 잘못 식별하여 복구하려고하면 데이터 손실로 이어질 수 있습니다. 나는 이것을 직접 경험 한 적이 없으며 지난 7 년 동안 수천 대의 서버를 처리했지만 여전히 이것은 명심해야 할 것입니다.


7

현재 키오스크 읽기 전용 솔루션의 경우 다음 방법으로 패키지 overlayroot를 설치할 수 있습니다

sudo apt-get install overlayroot

승인 된 답변 중 하나와 같은 완벽한 솔루션을 쉽게 제공합니다. 또한 유익한 명령을 허용합니다

sudo overlay-chroot

이전 읽기 전용 기본 디스크가 마운트 된 쉘에 로그인합니다 /. 그런 다음 보호 된 시스템을 변경하고 예를 들어 apt-get패키지를 이전 읽기 전용 디스크에 설치 하는 데 사용할 수 있습니다. 그러나 셸을 종료 한 후에는 RAM에 임시로 덮어 쓴 파일이 새로 설치된 파일을 가릴 수 있으므로 재부팅하는 것이 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.