하드웨어를 재부팅하지 않고 Linux OS를 재부팅 할 수 있습니까?


89

하드웨어를 재부팅하지 않고 Linux 시스템 (특히 데비안)을 재부팅하는 방법이 있습니까?

OS가 시작되기 전에 약간의 시간이 걸리는 RAID 컨트롤러가 있으며 RAID 컨트롤러를 다시 시작하는 전체 재부팅 프로세스를 거치지 않고 Linux OS를 신속하게 재부팅 할 수있는 방법이 필요한 경우, 기타


6
모든 UEFI 기반 시스템은 재부팅없이 OS를 전환 할 수 있습니다. 또한 유닉스 커널 kexec()과 같은 exec()것이 있습니다.
user2284570

답변:


98

거의 모든 프로덕션 시스템에서 kexec-reboot 를 사용 합니다.

HP ProLiant 서버 에서 긴 POST 시간 을 우회 하고 부팅주기를 5 분에서 ~ 45 초로 단축 할 수 있습니다.

참조 : https://github.com/error10/kexec-reboot

유일한 경고는 UEFI를 부팅하는 RHEL / CentOS 6.x 시스템에서 작동하지 않는 것입니다. 그러나 대부분의 정상적인 OS / 하드웨어 조합은 작동합니다.


62
나는 그것을 썼다! 그러나 그것은 여전히 ​​잘 작동합니다 ...
Michael Hampton

1
매혹적인. 실제 프로세스는 어떻게 보입니까? Hariprasad Nellitheertha (kexec wikipedia 페이지에서 링크 됨)의 기사에 따르면, "일반적인 재부팅 프로세스와 달리 kexec는 재부팅 전에 시스템을 완전히 종료하지 않습니다. 모든 응용 프로그램을 종료하고 파일 시스템을 마운트 해제해야합니다. "exec 재부팅을 시도하기 전에." 예를 들어 Wim Coekaerts는 "sync; umount -a; kexec -e"가 매우 빠른 재부팅을 수행 할 것이라고 의심합니다. 그러나 사용중인 파일 시스템은 마운트 해제 할 수 없습니다. 웹을 살펴보면 많은 사람들이 '모든 응용 프로그램 종료'부분을 무시하는 것 같습니다.
Mike S

2
@MikeS 이것은 아닙니다 kexec. 그것은이다 kexec-reboot유틸리티입니다. Github 설명은 차이점과 유틸리티가 프로세스에 추가하는 내용을 설명합니다.
ewwhite

4
@MikeS kexec를 준비한 후에는 간단히을 수행합니다 shutdown -r. 시스템 스크립트는 kexec가 준비되었으며 올바른 작업을 수행함을 알게됩니다. 어떻게 보입니까? 3-4 분 15 초 짧습니다. iDRAC 콘솔에서 가져온 매우 끔찍한 품질의 비디오를 가지고 있지만 실제로 겪고 싶지는 않습니다 ... kexec-reboot스크립트는 올바른 명령 줄 인수를 kexec에 가져 오는 프로세스를 자동화하기위한 것입니다. .
마이클 햄튼

1
@MichaelHampton-멋지다. CentOS 6.5의 /etc/rc3d/rc6.d/S01 재부팅 끝 부분에 다음이 있음을 알 수 [ -n "$kexec_command" ] && $kexec_command -e -x >& /dev/null있습니다. 따라서 커널이 kexec -l에 의해로드되면 시스템은 완전한 / sbin / reboot없이 커널로 재부팅됩니다 ... kexec가 구워집니다! 몰랐어요, 고마워요 더 현대적인 배포판도 포함되어 있다고 가정합니다. BTW, kexec가 이전에 -l로 실행되지 않은 경우 재부팅 스크립트에 "Nothing has been loaded!"가 표시됩니다. 이것이 출력이 / dev / null로 전송되는 이유이며,이 기능에 대해 전혀 몰랐습니다.
Mike S

17

네 가능합니다. kexec 를 사용하면 BIOS 부팅 프로세스를 거치지 않고 Linux에서 Linux 커널을 직접 부팅 할 수 있습니다.


또한 UEFI를 사용하면 재부팅하지 않고 OS를 전환 할 수 있습니다.
user2284570

1
내가 아는 한, UEFI는 그러한 메커니즘을 제공하지 않습니다.
Jonathon Reinhart

15

예. kexec-tools를 사용해야합니다. 인생을 더 쉽게 만들기 위해 kexec-reboot를 사용 합니다.

$sudo apt-get install kexec-tools
$wget https://raw.githubusercontent.com/vadmium/kexec-reboot/master/kexec-reboot
$chmod +x kexec-reboot
$sudo mv kexec-reboot /usr/local/sbin/kexec-reboot
$sudo /usr/local/sbin/kexec-reboot

13
혼란이 없도록 이것을 쓰지 않았습니다.
Michael Hampton

우분투 / 데비안 전용 일 것입니다.
ewwhite

1
@ewwhite 아마도 RHEL / CentOS에서 작동 할 것 입니다 . 그러나 코드를 읽으면서 에지 케이스가 실패 할 수있는 몇 가지 문제 지점을 발견했습니다. 그리고 출처는 이것을 주석으로 인정하는 것 같습니다 :# The error checking is very basic.
Michael Hampton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.