Archをインストールするための起動可能なUSBを作成しました。私はこれを次の方法で行いました:
Sudo dd if=/path_to_Arch_.iso of=/dev/sdX
しかし、このUSBフラッシュから起動しようとすると失敗しました。エラーはなく、単に起動できませんでした。最近、Arch Linuxの公式Webサイトからisoファイルをダウンロードしたので、最新のはずです。以前は、usb flashからmint、elementary、ubuntuを正常にインストールできました。
次の方法で起動できなくなります:
「boot from usb」を選択した後、1秒間黒い画面が表示され、一時的な起動デバイスを選択する必要があるメニューに戻りました。私がそれをもう一度やったとき、物語は繰り返されました。
原因は何でしょうか?
自分で書いているのでこれを書いています。最新のArch 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
あなたはそこにそのほとんどを必要としません。または、おそらくそれの半分だけが必要であると言う方が良いでしょう。ここには2つのイメージがあります-それぞれ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システムパーティションを準備します。それは一種のケーキウォークです。
OK、サムドライブが手元にないので、次のようにします。
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
次に、gdisk
に入ります。 USBディスクが存在する/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
を押すと、使用可能なすべてのパーティションタイプのリストが表示されますが、efiシステムパーティションの場合は、タイプef00
が必要です。これでほぼ完了です。
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
が見つかります here を見つけたら、それをディスクに解凍し、Archイメージをコピーして完了です。
実際には、まず最初にファイルシステムが必要です。私が書いているように、私は実際にこれをやっていてうれしいです-それが欠けていることは確かに取引破りになるでしょう。
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ライブディスクにいつでもアクセスできるようになります。
そうするための適切な方法は、( Arch Linux Wiki で説明されています)
# dd bs=4M if=/path_to_Arch_.iso of=/dev/sdX && sync
GNU dd
を使用します。
Arch Linuxでlive-usbを作成する方法を理解するのに少し時間がかかりました。解決策は簡単です。私は書きました:
$ dd if=/adress/of/iso-file of=/adress/of/usb-stick/sda/not/sdaY/don't/write/the/partition/number
私はgnomeディスクユーティリティを使って多くの作業をし、gpartedしました。 USB-Stickのパーティションテーブルをクリアしてもかまいません。
興味深い事実が1つ重要です。 ddが100〜400個のファイルで終わっている場合は、問題が発生しています。時々もっと時間がかかることもありましたが、あまり長く待ちたくなかったので中止しました。その後、それが完了するまで1回行いました。その時間は約20分かかったと思いますが、確かにddは約10000のファイルが正しく送信されて表示されます。私はスティックを起動し、すべてが正常に動作します。私はファイルの量を知りませんでした。私が行った方法でこれを行うと(bs = partを使用しなかったことがわかります)、約30分間待つと、すべてが問題ないはずです。
USB 3.0スティックは本当に役に立ちます。