우분투 liveCD에서 빈 디스크에 grub을 설치하는 방법

우분투 liveCD에서 빈 디스크에 grub을 설치하는 방법

면책조항: 저는 이 분야가 처음이므로 단계별 안내가 필요합니다. 감사해요!

로컬 네트워크에 저장된 ISO 파일에서 부팅되므로 먼저 운영 체제 없이 grub을 설치하고 싶습니다. liveCD로 부팅했는데(불안정한 시스템이 필요해서 마운트할 수 없습니다) 첫 번째 단계에서 멈췄습니다. 시도했지만 grub-install /dev/sda오류 메시지가 나타남grub-install: error: cannot open directory '/boot/grub/i386-pc': No such file or directory.

grub-install그래서 필요한 모든 파일을 생성하고 복사했는데 이제 다음과 같이 표시됩니다.grub-install: error: failed to get canonical path of 'aufs'.

웹을 검색한 결과 대부분의 답변에서 시스템이 설치된 경우 chroot를 사용해야 한다는 것을 알았지만(깨질 수는 있지만) 어떤 드라이브에도 Ubuntu가 설치되어 있지 않으며 내 목표는 다음과 같습니다.liveCD의 grub을 빈 드라이브에 설치.

빈 부트로더로 시작하고 싶습니다.

어떻게 해야 하나요?

미리 다시 한번 감사드립니다.

답변1

ISO만 부팅하는 경우에는 전체 Linux 파일 구조가 필요하지 않습니다. 플래시 드라이브에 다양한 형식의 grub을 설치하고 동일한 플래시 드라이브에서 ISO를 부팅했습니다. 네트워크 부팅에 필요한 정확한 grub 부팅 스탠자가 확실하지 않습니다.

다시 포맷한 오래된 USB2 플래시 드라이브가 있습니다. 40년 된 MBR 파티션보다 더 마음에 들어서 먼저 gpt로 설정했습니다. 제가 주로 사용하는 gparted를 사용하시면 됩니다. 시작하기 전에 msdos(MBR) 기본 파티션의 장치, 고급에서 gpt를 선택하세요. 아니면 parted나 gdisk를 사용하세요. 참고: 이렇게 하면 드라이브가 완전히 지워집니다. sdX는 플래시 드라이브입니다.

sudo parted /dev/sdX mklabel gpt

그런 다음 gparted를 사용하여 대규모 FAT32 파티션을 만들었습니다. 제대로 보려면 재부팅을 해야했고, 파일탐색기는 ESP 파티션을 자동으로 마운트하지 않기 때문에 디스크를 사용하거나 수동으로 마운트를 해줘야 했습니다.

Model: Kingston DataTraveler 2.0 (scsi)
Disk /dev/sdc: 1998MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  1998MB  1996MB  fat32        esp2  msftdata

그런 다음 디스크에 마운트했고 /media/fred에 있었습니다.

/dev/sdc1 on /media/fred/FC87-F75C type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)

그런 다음 그럽을 설치하십시오. 내 드라이브는 sdc로 처리됩니다. 기존 USB2 플래시 드라이브에 비해 약간 느립니다.

sudo grub-install --root-directory=/media/fred/FC87-F75C /dev/sdc

/boot/grub/grub.cfg에 전체 grub 3줄 구성 파일인 구조와 일반 /EFI/ubuntu/grub.cfg를 생성합니다. 그러나 /boot/grub/grub.cfg 부팅 파일은 생성되지 않습니다. 나는 일반적으로 로컬 ISO를 부팅하기 위해 이러한 참조와 이전 메모를 사용하여 수동으로 만듭니다. grub.cfg를 생성해야 하지만 경로와 설치를 포함해야 합니까? 네트워크에.

ISO 부팅 및 샘플 링크

https://help.ubuntu.com/community/Grub2/ISOBoot

더 많은 예시

https://help.ubuntu.com/community/Grub2/ISOBoot/Examples

Google을 사용하여 네트워크 그럽 정보를 찾았습니다. nfs는 작동하지 않지만 네트워크 부팅의 예가 있습니다.

GRUB PXE용 nfsroot 설정

GRUB2 콘솔을 통해 네트워크에서 Linux 커널을 부팅하는 방법은 무엇입니까?

답변2

시스템을 설치할 필요가 없습니다. 먼저 지금부터 예시로 사용할 디스크를 마운트해야 합니다 sda. 마운트 지점의 예/media/usr/DISK

터미널에서 다음 코드를 사용합니다.

dirs=(etc bin usr proc sys lib lib64 dev sbin)

for dir in ${dirs[@]}; do
  mkdir /media/usr/DISK/$dir
  sudo mount --bind /$dir /media/usr/DISK/$dir
done

sudo chroot /media/usr/DISK/ grub-install --target=i386-pc --boot-directory=/ /dev/sda

for dir in ${dirs[@]}; do
  sudo umount /media/usr/DISK/$dir
  rm -r /media/usr/DISK/$dir
done

관련 정보