Linux on USB-HDD (UEFI) #2

2024. 3. 4. 01:12리눅스 실제 사용 팁/멀티부팅

자, 그럼 본격적으로 설치를 해보자.

데비안 설치 이미지로 부팅해서 그래픽 설치를 선택한다. 두 번째 줄의 Install 을 선택하면 텍스트 그래픽 방식으로 진행됨.
UEFI 전용 파티션을 만들어야 하므로 Manual 을 더블클릭한다.
EFI System Partiton 을 선택한다. FAT32 를 선택해도 된다. 왜냐하면 EFI 는 호칭일뿐이고 실제 파일시스템은 FAT32 을 쓰기 때문이다.
사이즈는 500 MB 이하면 된다. 부트 정보만 담을 거라서 크게 잡지 않아도 된다.
파티션은 설치하는 사람 마음~! 테스트를 보여주기 위해 적당히 3개로 나눴다. 여기서 핵심은 ESP 라는 것! EFI System Partition 의 약어.
앞서 나눈 파티션을 포맷하고 마운트하고
데비안 기본 시스템 유틸리티 설치하고
각자 구미에 맞게 프로그램을 설치하란다.
보여주기식이라서 데스크탑 환경까지 설치할 필요는 없지만(내 시간도 사라지니까), 제대로 뜨는 것을 확인시켜주기 위해서 선택했다.
진행~
배포판 설치 마지막은 GRUB (리눅스 부트로더)가 설치된다. 그러나 귀찮게도 이 실험에서는 불필요하게 윈도10 부팅용으로 마련한 EFI 파티션에 설치된다. 따라서 나중에 바이오스 또는 그것에 해당하는 EFI 부팅정보 삭제 프로그램으로 불필요하게 설치된 것들을 지워야 한다.
설치 끝~~~!
부팅하려면 Continue 를 누르세요.
여기 보이는 이 부트로더는 현재 윈도가 설치된 디스크의 EFI 파티션에 존재한다. 여러분이 리눅스를 설치한 USB 하드디스크를 다른 컴퓨터에 꽂으면 GRUB 이 없기 때문에 리눅스로 부팅할 수 없다.
과거와 달리 요즘은 /etc/fstab 파일에 /dev/sda, /dev/hdc, .. 처럼 디바이스 파티션이름을 직접 지정하지 않고 UUID 를 쓴다. 이는 듀얼부팅에 별로 관심없는 컴퓨터 유저에겐 그저 무시해도 된다. 리눅스 설치에 관심이 많아서 노트북의 SSD 를 수시로 빼서 케이블을 바꿔 끼운다거나 USB 에 리눅스를 설치해서 쓰는 경우에는 단자위치에 따라 디바이스명이 따라가기 때문에 시스템 부팅 시에 디바이스를 찾지 못하는 상황이 발생할 수 있다. UUID 는 시리얼 넘버처럼 일정한 이름이기 때문에 이런 상황이 발생하는 것을 방지해준다. 다만 너무 길어서 못외우기 때문에 blkid 명령으로 확인해볼 수 있다.
/etc/fstab 에서 기존 윈도 디스크에 존재하는 EFI 파티션의 UUID 를 리눅스가 설치된 USB 하드디스크의 EFI 파티션의 UUID 로 변경해준다.


vim 편집기 팁!

vim 명령모드에서는 쉘명령을 실행해서 결과를 가져올 수 있다. 명령모드는 콜론(:) 문자로 시작된다.

쉘명령을 실행할 때는 앞에 "!" 를 붙인다. (위의 ~ 는 오타임. 어둠 속에서 안보이는 노트북 키를 누르려다 보니 엣헴~)

단순히 실행만 할 때는 "!명령어..." 인데 vim 에서 입력을 받을 때 쓰는 r(읽기)명령으로 실행결과를 가져올 수 있다.


기존 것 지우고 나중 것으로 교체
요렇게 보기 좋게 빈줄을 넣으면 눈이 아픈 UUID 를 볼 때 편하다.
/etc/fstab 를 변경하면 위의 systemctrl daemon-reload 명령을 실행해주어야 한다. sysV-Init 을 쓸때는 이러지 않았는데 systemd 부터는 이래야 한다. grub 을 설치하기 전에 기존 /boot/efi 에 마운트했던 윈도 설치 디스크 상의 EFI 파티션을 언마운트해야 한다. 그 다음에 리눅스 디스크의 EFI 파티션을 마운트해야 하는데 grub 을 설치하는 경우에만 (유틸리티의 버그라나?) /boot/efi 가 아닌 곳에 마운트를 해야 한다. 그리고 grub-install 명령에서 --efi-directory 옵션의 입력값으로 해당 마운트 포인트를 넘긴다.

 

grub-install 명령에서 맨뒤에 "--removable" 을 반드시 붙여야 한다. (이게 핵심)

grub-install --target=x86_64-efi --efi-directory=(EFI파티션을 마운트한 경로) --removable

 

GRUB 설치를 마치면 재부팅을 해준다. 일반적인 HDD 나 SSD 에서는 init 6 또는 셧다운 명령을 실행하면 즉시 시스템 데몬들이 종료된 후에 바로 부팅이 일어나는데 USB 하드디스크의 경우에는 너무 느리다. 언제 부팅되는지 기다리기 싫으면 (리눅스 커널 문서에 소개된) 마법의 키조합을 활용한다. 이른바 SysMagic Keys

<Alt><SysRq><U> 는 전체 파티션을 언마운트시킨다.
<Alt><SysRq><R> 는 전체 파티션을 재마운트(한다고 한다... 그랬던가??? 쩜쩜쩜)
<Alt><SysRq><B> 는 시스템을 곧바로 부팅시킨다.

 

OS 가 부팅되기 전에 노트북 또는 귀하의 컴퓨터에서 지원하는 키를 눌러서 바이오스 (또는 유사 프로그램)을 실행한다. 부팅순서 설정에 들어가면 UEFI 의 경우, 이렇게 목록이 많이 나온다. 부팅대상목록에서 괄호 뒤에 붙은 저장장치 브랜드 또는 모델명으로 어떤 디스크에 있는 것인지 알 수 있다. Windows Boot Manager 와 나머지 debian ... 2개가 동일한 하드디스크에 설치되어 있다. 우리는 여기서 "debian(..." 은 필요없다. 왜냐하면 여기서 리눅스가 설치된 USB 하드디스크는 JMicron Generic 0114 이기 때문이다.
어느 것으로 부팅할지 선택하는 메뉴다.
내 노트북의 유틸리티에서는 고급설정에 들어가서 이렇게 순서를 변경할 수도 있다. Advanced 가 일반적으로 고급으로 번역되는데 저급이 더 어울리는 것 같다. 마우스 끌기로 더 쉽게 변경할 수 있기 때문이다.
grub-install 및 update-grub 으로 EFI 에 등록되는 부팅정보는 여기서 삭제할 수 있다. 윈도가 설치된 컴퓨터에서는 가급적이면 Windows Boot Manager 를 날려 먹지 않도록 주의하기 바란다. grub 으로도 부팅할 수 있지만 윈도와 리눅스가 서로 다른 디스크에 설치되어 있을 경우에 리눅스 디스크를 USB 단자에서 빼면 부팅못하는 상황이 발생할 수도 있기 때문이다.
삭제 후에는 필히 저장하기!
드디어 USB 하드디스크로 부팅되었다. 집에서 성공했는데 내일 회사가서 부팅되는지 확인해봐야겠다. (:~D)
앞서 우려했던 상황이 바로 이 화면이다. 리눅스 디스크가 없는데 윈도부팅 어떡하지? ㅈ됐다.

 

윈도 부트 매너저를 남겨 놓아야 하는 이유! GRUB 이 설치된 USB HDD 가 없을 때 윈도를 부팅하기 위해서 부팅 우선순위를 바꾼다.

그럼 이렇게 환한 윈도를 볼 수 있다.

'리눅스 실제 사용 팁 > 멀티부팅' 카테고리의 다른 글

Linux on USB-HDD (UEFI)  (0) 2024.03.03