나는 여기서 Debian 9를 펜 드라이브(제 경우에는 SDCard 어댑터)에 직접 설치하면 작동할 수 있다는 내용을 읽은 적이 있습니다. 그러나 문제는 컴퓨터에서 어댑터를 분리했을 때 시작되었습니다. Linux로 부팅하려고 할 때 BIOS 설정에서 "UEFI:debian"이라고 표시된 부팅 장치를 선택하기만 하면 되었습니다. 제거되면 이 옵션도 사라집니다.
나는 데비안 설치를 잃고 싶지 않으며 다시 작동하기를 원합니다. 다시 부팅해야 합니다.
답변1
이것냄새가 난다BIOS 문제. 귀하의 질문에 일부 정보가 누락되어 있으므로 다음과 같이 가정하겠습니다.
UEFI: debian
설치 후 BIOS 메뉴에 표시됩니다(grub 메뉴 아님).- USB 드라이브를 분리했다가 다시 삽입할 때 BIOS가 더 이상 표시되지 않습니다.
UEFI: debian
다시 시작한 후에도 - 기본 하드 드라이브는 EFI를 사용하여 다른 운영 체제(Windows?)를 부팅합니다.
BIOS에 대해 더 많이 알지 못하면 간단한 솔루션을 제공하기가 어렵습니다. 그러나 문제는 두 개의 EFI 파티션이 내부 HDD에 하나, USB 디스크에 있다는 것일 수 있습니다.
USB EFI 항목을 다시 연결할 때 BIOS에 USB EFI 항목을 수동으로 상기시키는 것이 가능할 수도 있지만 방법은 알 수 없습니다.
가능한 해결 방법 중 하나는 EFI 항목을 USB 드라이브에서 내부 하드 드라이브로 복사하는 것입니다. 이것은 데비안에서 더 쉽지만(다시 돌아갈 수 있다면),Windows에서 가능합니다.
EFI 항목은 기본적으로 EFI 파티션 디렉터리에 있는 몇 개의 파일입니다. 따라서 내부 HDD의 EFI 파티션을 마운트하고 USB 드라이브에서 해당 파티션을 복사하기만 하면 됩니다(일반적으로 에 마운트됨 /boot/efi/EFI/debian
).
답변2
내 생각엔 루트 파일 시스템(Debian OS)이 손상된 것 같습니다.
이런 일이 일어날 수 있습니다
운영 체제가 완전히 종료되기 전에 드라이브를 분리하거나
다른 운영 체제가 실행 중인 동안 연결하는 경우 드라이브를 분리하기 위해 드라이브의 모든 파티션을 마운트 해제할 필요가 없습니다.
Linux를 실행하는 컴퓨터에 드라이브를 연결하고 파일 시스템을 복구해 볼 수 있습니다.
SD 카드의 모든 파티션이 마운트 해제되었는지 확인하세요.
SD 카드의 루트 파일 시스템(및 Debian에 속한 파일 시스템 등)을 복구합니다.집, 별도의 기본 파티션이 있는 경우.
각 파일 시스템에 대해 다음 명령줄을 실행합니다(여기서는 ext4라고 가정합니다. 다른 파일 시스템을 사용하는 경우 수정하십시오).
sudo e2fsck -f /dev/sdxn
여기서 x는 SD 카드의 장치 드라이브 문자이고, n은 파티션 번호입니다. 예를 들어
/dev/sdb2
Windows가 USB를 통해 SD 카드의 부팅 시스템을 손상시켰을 수도 있습니다. 이는 카드가 연결되어 있거나 Windows가 시작되거나 Windows가 특정 업데이트/업그레이드 프로세스를 실행 중인 경우 발생할 수 있습니다.
이 경우 인터넷을 통해 "grub 복구" 또는 "부팅 복구" 방법을 찾을 수 있습니다. 알아요방법Ubuntu의 경우 동일한 접근 방식이 Debian에서도 작동할지는 확실하지 않습니다.
손상된 파일 시스템에 관한 1부와 손상된 Windows 부팅 시스템에 관한 2부에서는 별도의 문제를 설명합니다. 나는 SD 카드의 데비안 시스템에 어떤 문제가 영향을 미치는지 알 수 있을 만큼 귀하의 특정 문제에 대해 충분히 알지 못합니다.
답변3
글쎄, 난 정확한 것을 찾지 못했어무엇설정에 문제가 있는 것 같은데 rEFInd를 사용하는 것 같습니다(첫 번째https://wiki.debian.org/GrubEFI 재설치) 문제를 해결하겠습니다. BIOS는 pendrive 커널을 찾을 수 없지만 rEFInd는 부팅하는 데 문제가 없습니다.
나는 이것이 해결책이라고 생각하지 않지만 해결 방법으로는 잘 작동합니다.
답변4
데비안 설치 프로그램은 기본적으로 SDCard 어댑터를 고정 디스크로 취급하고 ESP 파티션에 UEFI 부트로더를 설치합니다. 그 후에는 한 가지 작업을 더 수행합니다. 다음 efibootmgr
명령을 사용합니다.UEFI NVRAM 부팅 변수에 부트로더를 등록합니다..
어댑터를 분리하기 전에는 모든 것이 괜찮았습니다. SDCard 디스크와 그 위의 부트 로더는 UEFI 부팅 순서에 따라 등록되었습니다. 그러나 분명히 시스템의 UEFI 펌웨어에는 다음과 같은 기능이 있습니다. 부팅할 때 NVRAM 부팅 변수 항목이 존재하지 않는 디스크를 참조하는 것을 감지하면 해당 항목이 더 이상 필요하지 않다고 가정하고 삭제합니다. NVRAM 부팅 변수가 없으면 UEFI 펌웨어는 더 이상 /EFI/debian/grubx64.efi
SDCard의 ESP 파티션을 조회할 수 없습니다.
다른 사람들은 UEFI 부트로더를 하드 드라이브에 복사하는 것을 권장합니다. 이것은 작동하며 SDCard에서 부팅할 수 있게 해주지만... 해당 특정 시스템에서만 가능합니다.
또 다른 해결 방법이 있습니다. GPT 파티션 디스크의 FAT32 파티션에 액세스할 수 있는 시스템에 SDCard를 삽입하는 것입니다. 이 시스템을 사용하여 SDCard의 ESP 파티션에 액세스하고 EFI
파티션의 루트에 있는 디렉터리, debian
그 안에 있는 하위 디렉터리 및 grubx64.efi
그 안에 있는 파일을 찾을 수 있어야 합니다 .
EFI
그런 다음 해당 디렉토리에 이라는 새 하위 디렉토리를 만듭니다 boot
. 그런 다음 하위 디렉토리 grubx64.efi
의 파일을 하위 디렉토리 debian
에 복사합니다 boot
. 하위 디렉터리 에서 boot
이름을 grubx64.efi
으로 변경합니다 bootx64.efi
.
FAT32 파티션의 이 경로 는 64비트 UEFI PC가 이동식 디스크에서 UEFI 스타일 부트 로더를 찾을 때 찾는 /EFI/boot/bootx64.efi
경로입니다 . 이 파일이 있으면 UEFI BIOS는 SDCard를 UEFI 스타일로 부팅할 수 있는 것으로 감지해야 합니다. 운영 체제 이름은 UEFI NVRAM 등록의 일부이므로 더 이상 표시되지 않지만 다음과 같이 UEFI:debian
나타날 수 있습니다 UEFI:<model of the SDcard>
. 이제 특정 컴퓨터뿐만 아니라 이동식 미디어에서 UEFI 스타일 부팅을 허용하는 모든 컴퓨터에서 SD 카드가 다시 부팅됩니다.