apt-get 업데이트 후 Kali Linux VM에서 apt-get을 성공적으로 업그레이드하고 재부팅하여 일부 설치를 완료하고 grub 복구 모드로 들어갔습니다.
그럽 구조에 대해>
엘에스,반품:
(hd0) (hd0,msdos1) (hd0,msdos5)
놓다,반품:
cmdpath=(hd0)
prefix=(hd0,msdos1)/boot/grub
root=hd0,msdos1
나는 달렸다엘에스(hd0)/boot, (hd0,msdos1)/boot, (hd0,msdos5)/boot 및 (hd0,msdos1)에서만 부팅 가능한 이미지 결과를 확인합니다.
리눅스 설치, 다음 grub 오류를 반환합니다.
symbol 'grub_file_filters' not found
그럽이 어디에서 보이는지 보고 싶었어요.칼리 연구소반품:
/boot/grub/i386-pc/kali.mod not found
그래서 오류가 발생하기 전에 Linux 모듈을 찾은 것 같습니다.
조사를 통해 이 오류가 파일 시스템/USB 장치와 관련이 있다는 것을 알았지만 이것은 가상 이미지이기 때문에(그리고 저는 VirtualBox를 사용하고 있습니다) 어떻게 해결해야 할지 잘 모르겠습니다.
문제 없이 처음부터 다시 설치했지만 이 오류와 해당 오류의 의미/수정 방법이 궁금합니다.
어떤 통찰력을 주셔서 감사합니다
추가 정보: 이것은 가상 머신을 시작할 때와 위에서 언급한 ls 명령 중 일부를 실행한 후 화면에 나타나는 출력입니다.
error: symbol ‘grub_file_filters’ not found.
Entering rescue mode...
grub rescue> ls
(hd0) (hd0,msdos5) (hd0,msdos1)
grub rescue> ls (hd0)
(hd0): Filesystem is unknown.
grub rescue> ls (hd0,msdos5)
(hd0,msdos5): Filesystem is unknown.
grub rescue> ls (hd0,msdos1)
(hd0,msdos1): Filesystem is ext2.
grub rescue> ls (hd0)/boot
error: unknown filesystem
grub rescue> ls (hd0,msdos5)/boot
error: unknown filesystem
grub rescue> ls (hd0,msdos1)/boot
./ . ./ System.map-4.18.0-kali2-amd64 config-4.18.0-kali2-amd64
initrd.img—4.18.0-kali2-amd64 vmlinuz-4.18.0-kali2-amd64
grub/ config-4.19.0-kali5-amd64 vmlinuz-4.19.0-kali5-amd64
System.map-4.19.0-kali5-amd64 initrd.img-4.19.0-kali5-amd64
grub rescue>
답변1
OSX에서 나에게 도움이 된 것은 Daniel Simon의 답변과 ddburrjr의 의견을 결합한 것입니다.
- 공식 Kali Linux 웹페이지에서 새로운 .iso 이미지를 다운로드하세요.
- VirtualBox를 시작하고 Kali Linux 가상 머신의 설정을 엽니다. 다운로드한 iso 이미지를 "스토리지 페이지"에 가상 CD로 추가합니다. 어떻게? "컨트롤러: IDE"를 선택하고 오른쪽의 CD 버튼을 누른 후 "디스크 선택"을 누르고 다운로드한 .iso 파일을 선택합니다.
- 부팅할 때 F12를 누른 다음 "C"를 눌러 CD_ROM에서 부팅합니다.
- .iso 파일에서 Kali Linux를 실행하려면 부팅 메뉴에서 "Live(amd64)"를 선택하세요.
- 다음 지침을 따르십시오.https://www.youtube.com/watch?v=5spKO02G5v4
- 완벽한! Kali Linux가 가상 하드 디스크에서 다시 시작됩니다.
답변2
ArchLinux에서 GRUB 설치를 업데이트한 후 (grub-mkimage 명령을 사용하여) 수동으로 생성된 grub 이미지를 부팅하려고 할 때 비슷한 문제가 발생했습니다. 제 경우에는 GRUB를 /boot 파티션에 다시 설치하면 문제가 해결되었습니다.
전체 운영 체제가 부팅되지 않으므로 현재 부트로더 설치를 백업하고 거기에서 부트로더를 다시 설치한 후(예를 들어 원래 구성 파일이 보존되도록 하기 위해) Kali의 라이브 이미지를 부팅하는 것이 좋습니다.
이 문제가 발생할 수 있는 한 가지 이유는 GRUB가 이전 버전의 GRUB인 모듈을 로드하려고 하는데 이미지가 로드되지 않기 때문입니다.
지시하다:
1. Kali Linux 공식 웹사이트에서 새 이미지를 다운로드합니다.
2. VirtualBox를 시작하고 Kali Linux 가상 머신의 설정을 엽니다.
2.1 다운로드한 ISO 이미지를 "스토리지 페이지"에 가상 디스크로 추가합니다.
2.2 가상 머신이 CD에서 먼저 부팅되도록 시스템 탭에서 부팅 순서를 변경합니다.
3. 가상 머신의 전원을 켜고 라이브 모드에서 이미지를 부팅합니다. 4. 부팅 파티션을 폴더(예: /mnt)에 마운트하고 grub 폴더를 다른 대상에 복사합니다. 부팅 파티션이 없는 경우 파일은 기본 파티션의 부팅 폴더에 있어야 합니다. 이 경우 기본 파티션을 마운트하고 5단계와 6단계를 건너뛰십시오.
5. 부팅 파티션을 다시 마운트 해제하고 기본 파티션(/home, /etc, /boot, ... 폴더 포함)을 이 지점에 마운트합니다.
6. 주 파티션의 마운트 지점 아래에 있는 /boot 폴더에 부팅 파티션을 다시 마운트합니다. 구조는 다음과 같아야 합니다.
/mnt/ (mount folder of main partition)
etc/
home/
boot/ (mount folder of boot partition)
grub/
(other boot files)
(other folders)
- 이 명령을 사용하여 루트 디렉터리를 설치된 운영 체제 파일로 변경합니다
chroot
. - 명령을 사용하여 grub을 다시 설치하십시오
grub-install /dev/sdX
. 여기서 X는 Kali Linux가 설치된 장치의 설명자입니다.--boot-directory
루트 디렉터리를 설치된 운영 체제로 변경했기 때문에 매개 변수를 제공할 필요가 없습니다 . 추가 매개변수를 제공해야 하는 경우 grub-install 명령에 대한 맨페이지를 확인하십시오. grub-mkconfig -o /boot/grub/grub.cfg
grub에 대한 새 구성 파일을 생성하려면 실행하세요 . 이 명령은 Kali Linux 설치를 감지해야 합니다.- 변경된 루트 디렉터리를 종료하고 모든 파티션을 마운트 해제합니다.
- 가상 머신을 종료합니다.
- 부팅 순서를 이전 설정으로 다시 변경하거나 디스크 부팅을 비활성화합니다.
- 가상 머신을 시작하십시오. 모든 것이 예상대로 작동하면 Kali Linux 및 GRUB가 평소대로 부팅됩니다.
설치되지 않았거나 명령을 찾을 수 없으면 sudo
먼저 실행을 사용해 보고, 여전히 존재하지 않으면 를 사용하여 설치해 보세요 apt-get install [name]
.
중요한 팁:
현재 저는 위에서 말했듯이 ArchLinux를 사용하고 있으므로 알 수 없는 설정에서 다른 배포판을 사용하여 grub을 다시 설치하는 방법에 대한 자세한 설명서를 제공하기가 어렵습니다.
실행하기 전에 사용 중인 명령을 살펴보고 해당 명령이 설정과 잘 작동하는지 확인하는 것이 좋습니다.
그 외에도 가상 머신을 사용하고 있으므로 이 지침을 따르기 전에 스냅샷을 생성하는 것이 좋습니다.
답변3
죄송합니다. 댓글을 달 수 없으므로 Daniel Simon의 답변이 효과가 있습니다! 하지만 추가 설치 후에는 .. 내 배포판은 Ububtu Server이고 18.04에서 20.04로 업그레이드한 후에도 동일한 오류가 발생했습니다.
내 VPS에는 복구 모드(예: 다른 드라이브(또는 다른 경우에는 USB)에서 부팅)가 있고 부팅 파티션이 기본 파티션 내부에 있으므로 단계(5단계와 6단계 아님)를 따랐습니다. 7단계(chroot) 전에 다음과 같이 /dev, /sys 및 /proc를 마운트하고 싶습니다. (기본 파티션을 먼저 마운트)
# mount /dev/vdb1 /mnt (in my case the main partition to mnt dir)
# mount --bind /dev /mnt/dev
# mount --bind /proc /mnt/proc
# mount --bind /sys /mnt/sys
그 후 7단계로 진행합니다. chroot