Arch를 설치할 부팅 가능한 USB를 만들었습니다. 나는 다음을 통해 이 작업을 수행했습니다.
sudo dd if=/path_to_arch_.iso of=/dev/sdX
하지만 이 USB 플래시 드라이브로 부팅하려고 하면 실패합니다. 오류가 없으며 부팅할 수 없습니다. 최근 아치리눅스 공식 홈페이지에서 iso 파일을 다운로드 받았으니 최신 버전일 겁니다. 이전에는 USB 플래시 드라이브에서 mint, Elementary 및 Ubuntu를 성공적으로 설치할 수 있었습니다.
다음을 통해 시작할 수 없습니다.
"USB에서 부팅"을 선택한 후 1초 동안 검은색 화면이 나타났다가 임시 부팅 장치를 선택해야 하는 메뉴로 돌아갑니다. 다시 해보니 그 이야기가 반복되었습니다.
이유는 무엇입니까?
답변1
그래서 제가 직접 하는 것처럼 이 글을 씁니다. 방금 최신 아치 iso를 다운로드하여 설치했습니다.
du archlinux-2014.04.01-dual.iso
535M archlinux-2014.04.01-dual.iso
mkdir -p /mnt/iso
mount ./arch*iso $_
mount: /dev/loop0 is write-protected, mounting read-only
ls $_/arch
boot x86_64 checksum.i686.md5 pkglist.i686.txt
i686 aitab checksum.x86_64.md5 pkglist.x86_64.txt
거기에 있는 것 중 대부분은 필요하지 않습니다. 또는 더 나은 방법은 절반만 필요할 수도 있습니다. 다음은 32비트 및 64비트 컴퓨터용 이미지 두 개입니다.
ls $_/x86_64
root-image.fs.sfs
du $_
230M /mnt/iso/arch/x86_64
Arch를 사용한다면 이미 64비트 시스템을 보유하고 있으므로 sfs
위 디렉토리에 있는 이미지 파일이 대부분의 요구 사항을 충족할 것입니다. 하지만 32비트 컴퓨터라면 686
해당 파일을 x86-64
지금부터 찾을 파일로 바꾸세요.
mkdir -p /mnt/img
mount /mnt/iso/EFI/archiso/efiboot.img $_
cd $_ ; ls
EFI loader
cd EFI ; ls
archiso boot shellx64_v1.efi shellx64_v2.efi
ls ./*/*
./archiso/archiso.img ./archiso/vmlinuz.efi
./boot/HashTool.efi ./boot/bootx64.efi ./boot/loader.efi
따라서 hybrid .iso
이미지는 이미지 표준을 전복 iso
하고 가짜 파티션과 같은 것을 생성하여 작동합니다. 이에 대해 잘 모르지만 UEFI 시스템이 있는 경우 필요한 커널 및 initramfs 이미지가 이 efiboot.img
파일에 있습니다. 사실 여기에서 필요한 것을 꺼내고 나면 제가 지적한 다른 파일들 외에는 거의 아무것도 필요하지 않을 것입니다. 이제 gdisk
대상 efi 시스템 파티션 준비를 시작하겠습니다. 그것은 약간 케이크 산책과 같습니다.
글쎄요, 제겐 썸드라이브가 없어서 이렇게 하려고 합니다:
fallocate --l $((650*1024*1024)) /tmp/bootimage
losetup -f --show -P $_
/dev/loop2
을 사용하고 싶지 않거나 fallocate
전체 losetup
공개에 관심이 있다는 것을 보여주는 것뿐입니다. 하지만 그 외에 내가 하고 있는 일은 당신이 해야 할 일이다. 예를 들어, 해당 디스크의 일부 초기 블록을 덮어썼을 수 있으므로 해당 블록을 지워야 합니다.
dd ibs=4M count=1 if=/dev/zero of=/dev/loop2
이제 USB 디스크의 모든 장치 파일을 내 것으로 교체해 보겠습니다 gdisk
./dev/...
/dev/loop2
gdisk /dev/loop2
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: not present
BSD: not present
APM: not present
GPT: not present
Creating new GPT entries.Command (? for help): ?
열면 gdisk
위와 같은 내용이 나오는데, ?
메뉴를 클릭하세요.
b back up GPT data to a file
c change a partition's name
d delete a partition
i show detailed information on a partition
l list known partition types
n add a new partition
o create a new empty GUID partition table (GPT)
p print the partition table
q quit without saving changes
r recovery and transformation options (experts only)
s sort partitions
t change a partition's type code
v verify disk
w write table to disk and exit
x extra functionality (experts only)
? print this menu
Command (? for help): o
새로운 빈 파티션 테이블이 필요합니다. 그건 o
.
여기에 동의해야 합니다.
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): y
다음으로 파티션이 필요합니다. 아래 프롬프트에서는 입력된 키를 볼 수 없습니다. 이는 방금 ENTER
기본값에 동의하기 위해 클릭했기 때문입니다.
Command (? for help): n
Partition number (1-128, default 1):
First sector (34-1331166, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-1331166, default = 1331166) or {+-}size{KMGTP}: 500M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): ef00
위의 마지막 프롬프트를 클릭하면 L
사용 가능한 모든 파티션 유형 목록이 표시되지만 ef00
필요한 유형은 efi 시스템 파티션입니다. 거의 완료되었습니다.
새 파티션을 살펴보고 p
이를 따라가면( w
원하는 경우) 보류 중인 변경 사항이 기록됩니다.
Command (? for help): p
Disk /dev/loop2: 1331200 sectors, 650.0 MiB
Logical sector size: 512 bytes
Disk identifier (GUID): E5D5A761-6AFA-48C6-9BA5-CED0DA2F62CA
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1331166
Partitions will be aligned on 2048-sector boundaries
Total free space is 309180 sectors (151.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 1024000 499.0 MiB EF00 EFI System
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/loop2.
The operation has completed successfully.
저는 여러분에게 부트로더가 있다고 가정하고 있지만 USB 디스크에 부트로더를 넣을 수도 있습니다. 이는 매우 간단합니다. 사실, 저는 그것을 설정하는 방법을 보여드릴 것입니다. rEFInd
이것은 실제로 오래된 프로젝트의 부활이며 에 의해 작성되었습니다 gdisk
.
refind.bin.*.zip
당신이 찾을 것을 얻으십시오여기디스크에 추출하고 아치 이미지를 복사하면 완료되었습니다.
사실 먼저 파일 시스템이 꼭 필요합니다. 내가 이 글을 쓰는 동안 실제로 이 일을 하고 있어서 기쁘다. 이것을 놓치면 확실히 거래 중단이 될 것이다.
mkfs.vfat -n ESP /dev/loop2
mkfs.fat 3.0.26 (2014-03-07)
Loop device does not match a floppy size, using default hd params
다시 말하지만, 이를 무시 loop
하고 자신의 장치를 사용하십시오. -n
파티션의 이름을 지정하십시오. 나는 를 사용하는 것을 좋아합니다 ESP
.
알겠습니다. 이제 rEFInd:
mkdir /tmp/refind
unzip ~/Downloads/refind-bin-0.7.9.zip -d $_
...
$_/ref*/install.sh --usedefault /dev/loop2
Not running as root; attempting to elevate privileges via sudo....
Installing rEFInd on Linux....
UnmountEsp = 1
Copied rEFInd binary files
Copying sample configuration file as refind.conf; edit this file to configure
rEFInd.
Installation has completed successfully.
Unmounting install dir
mkdir -p /mnt/bootdisk
mount /dev/loop2 $_
mkdir /mnt/bootdisk/EFI/arch_linux
cp /mnt/img/EFI/archiso/* -t $_
cp -R /mnt/iso/arch/*64* $_
cp -R /mnt/iso/arch/aitab $_
ls -lR $_
/mnt/bootdisk/EFI/arch_linux:
total 23328
drwxr-xr-x 2 root root 4096 Apr 22 02:09 x86_64
-rwxr-xr-x 1 root root 228 Apr 22 02:09 aitab
-rwxr-xr-x 1 root root 19882780 Apr 22 02:08 archiso.img
-rwxr-xr-x 1 root root 99 Apr 22 02:09 checksum.x86_64.md5
-rwxr-xr-x 1 root root 5142 Apr 22 02:09 pkglist.x86_64.txt
-rwxr-xr-x 1 root root 3979248 Apr 22 02:08 vmlinuz.efi
/mnt/bootdisk/EFI/arch_linux/x86_64:
total 234812
-rwxr-xr-x 1 root root 240447488 Apr 22 02:09 root-image.fs.sfs
거의 그 정도입니다. 설정을 좀 하셔야 합니다 rEFInd
...
echo '"ArchISO" "archisolabel=ESP archisobasedir=/EFI/arch_linux \
copytoram rootwait initrd=EFI\arch_linux\archiso.img"'\
>$_/refind_linux.conf
그러면 부팅 가능한 시스템이 제공됩니다. 주요 refind.conf
내용을 주의 깊게 읽어 보십시오 ../BOOT
. 매우 잘 검토되었으며 잘 문서화되어 있습니다. 너도 가고 싶구나Rodsbooks.com거기에 있는 문서를 읽어보세요.
마지막 요점. 시스템 하드 드라이브의 EFI 시스템 파티션에 동일한 콘텐츠를 배치하면 항상 부팅 가능한 Arch Live 디스크에 액세스할 수 있습니다.
답변2
답변3
아치 리눅스를 사용하여 라이브 USB를 만드는 방법을 알아내는 데 시간이 걸렸습니다. 해결책은 간단합니다. 방금 썼습니다 :
$ dd if=/adress/of/iso-file of=/adress/of/usb-stick/sda/not/sdaY/don't/write/the/partition/number
나는 gnome 디스크 유틸리티와 gparted를 정기적으로 사용합니다. USB 플래시 드라이브의 파티션 테이블을 지우면 됩니다.
흥미로운 사실이 중요합니다. dd가 100-400개의 파일로만 끝나면 뭔가 잘못된 것입니다. 때로는 시간이 더 걸릴 때도 있지만 그렇게 오래 기다리고 싶지 않아서 포기합니다. 그러다가 끝날 때까지 한 번만 했어요. 약 20분 정도 걸렸을 거라 확신하는데 갑자기 dd에서 약 10000개의 파일이 올바르게 전송되었음을 표시했습니다. 나는 스틱을 시작했고 모든 것이 잘 작동했습니다. 파일 개수는 모르겠지만, 저처럼 하시고(보시다시피 저는 bs=part를 사용하지 않았습니다) 30분 정도 기다리시면 모든 게 괜찮을 것 같아요.
USB 3.0 메모리 스틱이 정말 도움이 될 수 있습니다.