궁금해서 특정 시스템을 시작하는 데 어떤 부트로더가 사용되었는지 알아낼 수 있습니까? 시스템이 부팅되었습니까?애벌레,릴로아니면 다른 부트 로더?
나는 같은 것에 대한 일부 /sys
또는 변수가 존재해야 한다고 생각합니까 ?/proc
편집하다:
부팅 정보 요약: => Lilo는 /dev/sda의 MBR에 설치됩니다.
sda1: ___________________________________________________________________
File system: Boot sector type: Unknown Boot sector info: Mounting failed: mount: unknown filesystem type ''
/dev/sda
부팅해야 하는 유일한 장치입니다.
사용 가능한 유일한 단일 파티션에 알려진 파일 시스템이 없다면 어떻게 부팅할 수 있었는지 궁금합니다.
답변1
/sys
나는 이 정보가 또는 아래에서 의미 있는 방식으로 추적된다고 생각하지 않습니다 /proc
. 부팅 후 이에 액세스할 수 있다고 추측할 수 있는 유일한 방법은 GRUB 또는 Lilo 구성 파일이 있는지 확인하거나 다음과 같은 스크립트를 사용하여 시스템을 조사하는 것입니다.bootinfoscript
.
예 - 부팅 장치 확인
시스템이 어떤 장치로 부팅되었는지 알고 있다면 dd
부트로더의 내용을 덤프한 다음 grep
GRUB 또는 LILO에 대한 내용을 덤프하는 데 사용할 수 있습니다.
다음 명령을 사용하여 GRUB 또는 LILO를 사용하는지 확인할 수 있습니다.
$ sudo dd if=/dev/sda bs=512 count=1 2>&1 | grep GRUB
$ sudo dd if=/dev/sda bs=512 count=1 2>&1 | grep LILO
이 문자열을 반환하는 것은 사용 중인 부트 로더입니다.
Binary file (standard input) matches
예 - bootinfoscript 사용
$ sudo ./bootinfoscript --stdout
Boot Info Script 0.61 [1 April 2012]
============================= Boot Info Summary: ===============================
=> Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 of
the same hard drive for core.img, but core.img can not be found at this
location.
sda1: __________________________________________________________________________
File system: ext4
Boot sector type: -
Boot sector info:
Operating System:
Boot files: /grub2/grub.cfg
...
그러나 여러 부트 로더가 공존할 수 있기 때문에 이러한 접근 방식 중 어느 것도 "결정적"이지는 않습니다. 그러나 적어도 사용 중일 수 있는 부트 로더에 대한 대략적인 아이디어를 제공합니다.
참고자료
답변2
보다이것. 그러나 이 스크립트는 Bash로 작성되었으므로 임베디드 플랫폼에서 실행해야 하는 경우 수정해야 합니다. 이 스크립트를 테스트한 결과 Ubuntu에서는 GRUB가, Slackware에서는 LILO가 올바르게 인식되었습니다.