Arch Linux用のブータブル(ライブ)USBフラッシュドライブを作成できません

Arch Linux用のブータブル(ライブ)USBフラッシュドライブを作成できません

ArchをインストールするブータブルUSBを作成しました。私はこれでこれをしました。

sudo dd if=/path_to_arch_.iso of=/dev/sdX

ただし、このUSBフラッシュドライブから起動しようとすると失敗します。エラーがなく、起動できません。最近、ArchiLinuxの公式ホームページから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ビットコンピュータの2つの画像です。

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

正しい方法は(上記のようにArch Linux Wiki)

# dd bs=4M if=/path_to_arch_.iso of=/dev/sdX && sync

使用GNU dd

答え3

Arch Linuxを使用してライブ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分かかりました。私はスティックを始め、すべてがうまくいきました。ファイルの数はわかりませんが、私のようにして(見てわかるように私はbs = partを使用していません)、30分ほど待っていたらすべてが大丈夫だと思います。

USB 3.0メモリースティックは本当に役に立ちます。

関連情報