임베디드 관련 카테고리/Ubuntu

dd 명령어로 ISO 이미지를 특정 파티션에 설치하는 방법

CBJH 2024. 11. 26.
728x90
반응형

Ubuntu 설치나 관리 중에 부팅 가능한 ISO 이미지를 디스크의 특정 파티션에 설치하고 싶은 경우가 있습니다. 이 글에서는 dd 명령어를 사용하여 ISO 이미지를 특정 파티션에 설치하고, 해당 파티션에서 부팅할 수 있도록 설정하는 방법을 단계적으로 설명합니다.


1. ISO 이미지를 특정 파티션에 설치하는 이유

  • USB 없이 디스크 파티션에서 직접 부팅하고 싶을 때.
  • ISO 이미지를 디스크에 설치해 라이브 환경 또는 OS 설치 환경을 만들고 싶을 때.

2. dd 명령어로 ISO를 특정 파티션에 복사하기

준비

  1. ISO 파일 준비 Ubuntu ISO 파일을 준비합니다. 파일 경로를 확인해 두세요. 예를 들어: /path/to/ubuntu.iso
  2. 대상 파티션 확인 ISO를 설치할 디스크와 파티션을 확인합니다. 예: /dev/nvme0n1p3.
  3. 디스크 및 파티션 정보 확인 명령어:
lsblk

ISO 이미지 복사

dd 명령어를 사용하여 ISO 이미지를 특정 파티션에 복사합니다.

sudo dd if=/path/to/ubuntu.iso of=/dev/nvme0n1p3 bs=4M status=progress
  • if: 입력 파일 (ISO 이미지 경로).
  • of: 출력 디바이스 (대상 파티션 경로).
  • bs=4M: 블록 크기를 설정하여 복사 속도 향상.
  • status=progress: 진행 상황을 표시.

작업 완료 후 데이터 동기화를 실행합니다.

sudo sync

3. ISO로 부팅 가능하게 설정

ISO 이미지를 특정 파티션에 복사한 후, 부팅이 가능하도록 GRUB 부트로더를 설정해야 합니다.

GRUB 부트로더 설정

  1. 라이브 Ubuntu 환경 또는 기존 설치된 Ubuntu에서 GRUB 설정 파일을 엽니다.
sudo nano /etc/grub.d/40_custom
  1. 아래 내용을 추가합니다.
menuentry "Boot Ubuntu ISO" {
    set isofile="/dev/nvme0n1p3"
    loopback loop (hd0,gpt3)
    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet splash ---
    initrd (loop)/casper/initrd
}
  • (hd0,gpt3): ISO가 설치된 파티션 (예: /dev/nvme0n1p3).
  • casper/vmlinuzcasper/initrd: ISO 내부의 커널과 초기 램디스크 파일입니다.
  1. GRUB 업데이트 명령어를 실행합니다.
sudo update-grub

4. BIOS/UEFI 설정

  1. 컴퓨터를 재부팅합니다.
  2. BIOS/UEFI 설정 화면에 진입합니다.
    • 제조사에 따라 F2, Del, Esc, F12 키 중 하나를 사용합니다.
  3. 부팅 우선순위를 설정합니다.
    • GRUB 부트로더가 설치된 디스크(예: ubuntu (SHGP31-2000GM))를 부팅 장치로 선택합니다.

5. ISO 부팅 성공 확인

GRUB 부트로더 메뉴에서 "Boot Ubuntu ISO"를 선택하면, ISO 파일로 부팅이 진행됩니다. 정상적으로 Ubuntu 설치 화면이나 라이브 환경이 나타나면 성공입니다.


주의사항

  1. 데이터 손실 dd 명령어는 지정된 파티션을 ISO 이미지로 덮어씁니다. 복사 전에 데이터가 모두 삭제되므로, 필요한 데이터는 반드시 백업하세요.
  2. ISO 부팅과 OS 설치의 차이 ISO로 부팅은 라이브 환경 제공 및 설치 준비 과정입니다. 실제로 OS를 사용하려면 설치 마법사를 실행해 OS를 해당 파티션에 설치해야 합니다.

마무리

dd 명령어를 사용해 ISO 이미지를 특정 파티션에 설치하고, GRUB 부트로더를 설정하는 방법을 알아보았습니다. 이 과정을 통해 USB 없이도 부팅 가능한 환경을 만들거나 설치를 진행할 수 있습니다.

더 궁금한 점이 있다면 댓글로 남겨주세요! 😊


댓글