2021년 4월 27일 화요일

외장 nvme 에 ubuntu 설치하기

윈도우즈 PC에 연결한 외장 nvme 에 ubuntu 설치하기


설치야 그냥하면 되는데 부트로더가 외장 nvme 에 설치되지 않고 메인 ESP(EFI system partition) 에 설치되어 외장디스크 만으로 부팅을 할 수 없다.
이전과 같이 내장 디스크를 다 떼고 외장 디스크만 연결, 설치하면 되겠지만 이번엔 그럴 수 없는 상황.
검색해보니 시스템에 ESP 가 이미 있으면 ubuntu 설치시 새로 안만들고 기존 ESP 에 추가를 한다고...


기본적으로는 참고의 링크를 따라서 하는데 B 와 C 는 건너뛰고 D 와 E 는 변형했다.

A. 환경

장치명내용
/dev/nvme0ThinkPad T15, Windows 10
/dev/sdacrucial P2 M.2 nvme 512GB
/dev/sdbUSB 메모리 + Ubuntu 18.04.5 amd64 설치 이미지
(Rufus 로 DD 이미지 모드로 쓰기)

D.  ubuntu 설치

USB 메모리로 부팅하여 ubuntu 설치 진행, Installation type 이외는 원하는 대로 설정한다.
Installation type 에서 Something else 선택 후
/dev/sda > New Partition Table 로 기존 파티션 테이블 제거하고 파티션 2개를 만든다.
/dev/sda1 - Size: 256MB, Use as: EFI System Partition
/dev/sda2 - Size: 나머지, Use as: ext4, Mount: /
# 파티션 크기 및 파티션 개수는 마음껏 설정한다. (최소한 ESP 와 / 는 필요하다)
# 참고 페이지에서는 ESP 를 100MB 로 잡고 스왑파티션도 만든다.


E. grub 설치

USB 메로리에서 'Install Ubuntu'가 아니고 'Try Ubuntu without installing' 를 선택한다.
터미널에서 다음 실행

sudo umount /media/ubuntu/<인스톨 USB 의 UUID> # ubuntu/ 밑에 하나만 있음
gparted > /dev/sda > fat32 (Flags 에서 boot, esp 확인) > 더블클릭 > UUID 복사
sudo mount /dev/sda2 /mnt          # 루트 파티션 마운트
sudo vi /mnt/etc/fstab             # /boot/efi 의 UUID 를 위에서 복사한 것으로 변경 후 저장
sudo mount /dev/sda1 /mnt/boot/efi # esp 마운트

# chroot 를 사용하기 위한 설정
sudo mount -B /dev /mnt/dev
sudo mount -B /dev/pts /mnt/dev/pts
sudo mount -B /proc /mnt/proc 
sudo mount -B /sys /mnt/sys

modprobe efivars 

sudo chroot /mnt
root@ubuntu:/# grub-install -d /usr/lib/grub/x86_64-efi --efi-directory=/boot/efi/ --removable /dev/sda
Installing for x86_64-efi platform.
Installation finished. No error reported.

F. 메인 ESP 에서 ubuntu 정보 삭제

윈도우에서 명령창에서 실행

>diskpart DISKPART> list disk DISKPART> sel disk 0 # 메인 ESP 가 있는 디스크 선택 DISKPART> list part DISKPART> sel part 1 # 메일 ESP 의 파티션 선택 DISKPART> assign letter=x # X 드라이브에 연결 DISKPART> exit >rmdir /s x:\EFI\ubuntu

G. ThinkPad 부팅메뉴에서 ubuntu 정보 삭제

ThinkPad 의 경우 부팅 디바이스 리스트에도 ubuntu 가 생겨있다. 부팅시 F1 으로 BIOS SETUP진입 Startup > Boot > ubuntu 를 선택하고 Delete ubuntu 가 xubuntu 로 바꼈으면 F10 으로 저장 종료


참고.

https://www.58bits.com/blog/2020/02/28/how-create-truly-portable-ubuntu-installation-external-usb-hdd-or-ssd