restart -fa는 콜드 스타트를 위한 안전한 방법입니까?

restart -fa는 콜드 스타트를 위한 안전한 방법입니까?

현재 사용 중인 컴퓨터에서는 sudo reboot웜 재부팅만 제공됩니다.

sudo reboot -f안전한 방법 이다추운재부팅(BIOS를 통해)하시겠습니까?

EFI가 아닌 MBR을 통해 부팅하고 upstart(Linux Mint 17.3(Ubuntu 14.04 기반))를 사용합니다.

이건 좀 너무 빠른 것 같아서 파일 시스템이 손상될까 조금 걱정이 됩니다.

답변1

요점 reboot -f은 초기화 시스템이 실패하거나 실패할 것으로 예상되는 경우 초기화 시스템이 수행하는 모든 종료 단계를 우회하는 것입니다. 이 상황 외에는 사용하지 않는 것이 좋습니다.

파일 시스템을 순서대로 마운트 해제하는 것이 그러한 단계 중 하나라고 올바르게 가정할 수 있습니다 upstart.

( systemd완전히 다른 왁스 공이 될 것이고 효과도 다를 수 있습니다... 이것이 찌르는 것을 조심해야 하는 또 다른 이유입니다 reboot -f. 꽤 모호한 세부 사항이며 분명히 아무것도 찾지 못했습니다.파일에 기록하다관찰한 효과와의 관계).


man 2 rebootAFAICT, 커널 2.1.122 및 이전 i386 아키텍처를 언급한 의견은 여전히 ​​정확합니다. 최소한 커널 v4.17부터 시작하고 32비트 및 64비트용 새로운 통합 x86 아키텍처를 사용합니다.

커널을 Warmly 또는 Coldly로 다시 시작할지 여부가 결정됩니다 reboot_mode. 게다가오직reboot=이는 커널 옵션(예: )에 의해 설정됩니다 reboot=cold.

당신이 그것에 관심을 갖고 기본값이 문서화되지 않은 것 같다면 순진한 첫 번째 단계는 그것을 지정하는 것입니다. 이는 순전히 부팅 옵션처럼 보이며 실행 중인 시스템에서는 변경할 수 없습니다.

https://elixir.bootlin.com/linux/v4.17/source/Documentation/admin-guide/kernel-parameters.txt#L3732

https://elixir.bootlin.com/linux/v4.17/source/kernel/reboot.c#L518

https://elixir.bootlin.com/linux/v4.17/source/arch/x86/kernel/reboot.c#L545


마지막 링크를 보면 이론적인 가능성 중 하나는 다음 중 하나를 재부팅하는 것입니다.유형대체 체인의 메서드는 다른 모든 init 스크립트가 중지된 후에 작동하지 않습니다 upstart(또는 그 반대의 경우도 마찬가지입니까??). 따라서 수동 호출에서는 reboot -f다른 다시 시작 유형을 사용하며 이를 준수하는 방식도 다릅니다 reboot_mode. (특정 시스템에서?)

Linux와 Windows 재부팅 동작 간의 차이점을 보고할 수 있다면 커널 개발자가 관심을 가질 수 있습니다. 그러나 그들이 가장 관심을 갖는 것은 Linux를 전혀 재부팅할 수 없는지 여부입니다. :). 일부 printk() 및 sleep 호출을 다시 컴파일하여 위의 대략적인 추측을 확인하고 실제로 어떤 재시작 유형이 사용되고 있는지 알아보고 싶습니다.

또한 부팅 옵션에 다른 재시작 유형을 전달해 보십시오. 다소 간접적인 추측을 하고 있는 것 같지만... 이 복잡한 커널 코드가 시스템에 깔끔한 수정을 제공할 수 없다면 특정 재부팅 옵션을 전달하는 것이 최선의 방법인 것 같습니다.

답변2

AFAIK 이것은 reboot -f이전 시스템에서 사용되는 명령입니다. 나는 그것을 사용하지 않을 것이다.
더 안전한 방법은 입니다 sudo shutdown -r now. 대안은 기계의 전원을 끄는 것입니다 sudo shutdown -P now. 두 경우 모두 now종료 시작 시기를 정의하는 숫자 값으로 대체될 수 있습니다.

바라보다닫기(8)완전한 문서.

관련 정보