추가 데이터 파티션을 그대로 유지하고 액세스 가능하게 유지하면서 부팅 가능한 USB에서 Linux 배포 ISO를 교체하는 방법은 무엇입니까?

추가 데이터 파티션을 그대로 유지하고 액세스 가능하게 유지하면서 부팅 가능한 USB에서 Linux 배포 ISO를 교체하는 방법은 무엇입니까?

USB 메모리 스틱은 점점 더 커지고 있습니다. USB 부팅이 가능한 것 외에도 데이터를 저장하고 싶습니다. 나는 다음 방법을 알고 있습니다. 1. ISO를 USB 스틱에 씁니다. 2. Gnome Disk를 통해 파티션을 추가합니다(둘 다 GUI).

이제 추가 데이터를 그대로 유지하고 액세스 가능하게 유지하면서 ISO를 교체할 수 있기를 원합니다. 어떻게 하나요? 디스크의 16진수 데이터를 수동으로 편집하지 않는 것이 가장 좋지만 이 솔루션은 전혀 솔루션이 없는 것보다 낫습니다. 티아

아래와 같이 시도했지만 실패했습니다. 나는 읽었다표준 도구를 사용하여 전체 디스크의 파티션 레이아웃을 복사하는 방법sfdisk사용 장소를 추천합니다.

내가 본 대부분의 ISO는 다음과 같습니다.

sfdisk --dump linuxmint-20.2-cinnamon-64bit.iso 
label: dos
label-id: 
device: linuxmint-20.2-cinnamon-64bit.iso
unit: sectors
sector-size: 512

linuxmint-20.2-cinnamon-64bit.iso1 : start=           0, size=     4222944, type=0, bootable
linuxmint-20.2-cinnamon-64bit.iso2 : start=         640, size=        7936, type=ef

이는 일부 파티션 테이블 sfdisk가 다시 쓸 수 없기 때문입니다(0에서 시작하는 것은 불가능함).

그러나 다음을 통해 파티션을 생성한 후 gnome-disks:

sudo sfdisk --dump /dev/sda
label: dos
label-id: 
device: /dev/sda
unit: sectors

/dev/sda1 : start=     8433664, size=    57104384, type=83
/dev/sda2 : start=        4800, size=        8496, type=ef
# (note: the ISO I've tried to change from had start=4800 for ef).

그래서 새 줄을 저장하고 /dev/sda1, 파티션을 생성하고 , 확인한 다음, 데이터 파티션을 삭제하여 a.partUSB에 새 ISO를 쓴 다음 실행했습니다 (아래 부분 출력 참조). "파티션 테이블이 변경되었습니다."라는 메시지가 표시되면 내 데이터가 새 파티션 테이블에 분할되었습니다. 그러나 USB 스틱이 더 이상 부팅되지 않습니다.gnome-diskssfdisk --dumpgnome-diskssfdisk --append /dev/sda < a.part

/dev/sda3: Created a new partition 3 of type 'Linux' and of size 24.4 GiB.
Partition #3 contains a btrfs signature.
/dev/sda4: Done.

New situation:
Disklabel type: dos
Disk identifier: 

Device     Boot    Start      End  Sectors  Size Id Type
/dev/sda2           4800    13295     8496  4.2M ef EFI (FAT-12/16/32)
/dev/sda3       14368768 65538047 51169280 24.4G 83 Linux

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

추가됨(Ventoy 관련):

저는 이미 Ventoy를 사용하고 있습니다. 나는 여전히 내가 좋아하는 시스템에 USB를 장착하여 다른 일을 하는 동안 스틱을 연결하고 전원을 누르면 시스템이 자동으로 로드될 수 있도록 하고 싶습니다. 또한 Vetroy GUI가 일부 구형 컴퓨터에서 작동하지 않는 것을 기억하므로 직접 부팅 가능한 전용 스틱이 다시 유용할 것 같습니다.

그러나 Ventoy에 기본 지정된 파일을 로드하는 옵션이 있는 경우(GRUB 부팅 메뉴와 같이 지연이 발생함) 이러한 문제는 완화될 수 있습니다. 인터넷 검색 및 읽기로는 찾을 수 없습니다.https://www.ventoy.net/en/faq.html. Ventoy는 내부적으로 GRUB를 사용하여 부팅하는 것으로 보입니다. 기본 부팅 옵션을 추가할 수 있는지 확인하기 위해 구성 파일을 열었습니다.

답변1

먼저 좋은 점: 최신 컴퓨터는 10년 넘게 GPT로 파티션된 USB 장치에서 UEFI 부팅을 지원해왔기 때문에 부팅 가능하게 만드는 데 필요한 메모리 스틱의 포맷/파티션에 특별한 것이 전혀 없습니다!

필요한 것은 EFI/boot/boot{architecturename}.efi부트로더 파일이 포함된 FAT32 또는 exFAT 형식의 파티션이 있다는 것입니다. 이는 x86_64에 관한 것이라고 가정하므로 EFI/boot/bootx64.efi부트로더는 Linux 커널을 직접 로드하고 부팅하는 것까지 원하는 모든 작업을 수행할 수 있습니다. USB 스틱에서 단일 설치, GRUB 로드 및 많은 Linux(또는 기타 운영 체제) 중 하나를 CDROM 디스크 이미지(실제로 .iso 파일의 이름)에서 부팅하는 것 - 이것이 여전히 기본이라는 것이 역사적으로 궁금합니다. USB 스틱에 설치 프로그램을 설치하는 방법), 모든 파일 시스템 드라이버와 함께 전체 USB 스틱을 분석하고 이 Linux에서 부팅할 Linux 목록을 제공할 수 있는 소형 Linux 시스템을 부팅하는 것도 기술적으로 매우 합리적입니다(예: kexec 사용).

스토리지에서 .iso 파일을 검색하고 부팅할 파일을 선택할 수 있게 해주는 여러 가지 "멀티부팅 활성화 프로그램"이 있습니다. 이들 중 다수는 비트 회전 방식입니다. 관리자가 USB 스틱을 사용하여 클라이언트 PC에 무언가를 부팅하거나 설치하던 시절은 끝났습니다. 네트워크 부팅이 상당히 쉬워졌으며 최신 운영 체제는 합리적인 원격 액세스 및 업데이트 기능을 제공합니다. 서버 비즈니스에서는 웹 콘솔을 통해 업로드된 파일을 실행할 수 있는 보드 관리 컨트롤러를 갖는 것은 솔직히 말해서 지난 5년 동안 이러한 기능을 전혀 사용하지 않았습니다.

대부분은 실제 부팅에 GRUB를 사용합니다. 가장 일반적이며 아마도 여전히 가장 잘 지원되는 것은 다음과 같습니다.벤토이. Ventoy를 스틱에 한 번 설치해야 합니다(필수는 아니지만 자동 설치를 사용하지 않고 이를 수행하는 방법을 알아내지 않는 한 스틱의 데이터가 손상되는 것이 가장 쉽습니다).기존 지팡이에 수동으로 삽입);

./Ventoy2Disk.sh -i -g /dev/sdYOURUSBSTICK

작업을 수행합니다.

그런 다음 iso 파일을 exfat 파티션에 넣기만 하면 됩니다(실제로 다른 곳에 넣고 GRUB에서 다른 파티션을 수동으로 찾아볼 수도 있습니다).

스틱의 다른 파티션에 대해 모든 작업을 수행할 수 있습니다.

관련 정보