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.part
USB에 새 ISO를 쓴 다음 실행했습니다 (아래 부분 출력 참조). "파티션 테이블이 변경되었습니다."라는 메시지가 표시되면 내 데이터가 새 파티션 테이블에 분할되었습니다. 그러나 USB 스틱이 더 이상 부팅되지 않습니다.gnome-disks
sfdisk --dump
gnome-disks
sfdisk --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에서 다른 파티션을 수동으로 찾아볼 수도 있습니다).
스틱의 다른 파티션에 대해 모든 작업을 수행할 수 있습니다.