2015年8月28日金曜日

ArchLinuxをUSBメモリから起動、ディスクをフォーマットする

公式マニュアルのArchLinuxのビギナーズガイドを確認するのが一番オススメ。

USBメモリから起動する

それではUSBメモリから起動してみる。

ArchLinuxをインストールしたUSBメモリをUSBポートにつないで起動する。
すでに前の項目でUSBメモリからバックアップしたはずの人なら何の問題もないハズだ。
ArchLinuxのブート画面が表示されるので、先頭の

Boot Arch Linux (x86_64)

を選びEnterキーを押す。起動したら次のようなプロンプトが出る。


root@archiso ~ # _

これで準備完了だ。

キーボードのレイアウトを合わせる

地味に重要な作業です。
試しに@を押してみよう。@が入らないと思う。こちらのPCでは[が出てきた。
実は最初の状態だと英語のキーボードのレイアウトになっているので日本語のキーボードにあわせてあげないといけない。
とはいえ、難しいことはない。

root@archiso ~ # loadkeys jp106

を実行するだけ。Enterを押して実行したら、@を再度入れてみよう。
今度は@が出ると思う。

WiFiを接続する

ビギナーズマニュアルに従ってネットワークをつなぐ。

root@archiso ~ # ip link

を実行するとネットワークデバイスがわかるようです。

enp...で始まるのがイーサネットアダプタ
wlp...で始まるのがワイヤレスアダプタ

root@archiso ~ # iw dev

を実行するとワイヤレスのデバイスをもう少し詳しく確認できるようです。ふむふむ。


root@archiso ~ # wifi-menu wlpで始まるワイヤレスアダプタ名

を実行して無線の設定ができる。
設定は難しくない。SSIDを選んでEnter、設定名はそのままEnter、パスワードを入れてちょっと待ったらコマンドプロンプトに戻った。


root@archiso ~ # ping 8.8.8.8

と、適当にgoogleのDNSにpingを打ってみる。ttlやtimeが返ってきたら繋がっている。
止める時はCtrlキーを押しながらc(略すとC−c)。


root@archiso ~ # ping www.google.com

で返ってくるならDNSも正常に動いていると思われる。予想外に簡単!

システムの時計を合わせる

root@archiso ~ # timedatectl status

を実行すると、今の時間とか出てくる。Network time on がnoになっていると思うので、

root@archiso ~ # timedatectl set-ntp true

でyesになるのを確認。これで時間が正確になるはず。

ハードディスクの準備

ハードディスクは
  • パーティショニング(分割)
  • フォーマット(論理的に構造を作る)
  • マウント(Linuxで使えるようにする)
の手順を経てようやく使えるようになる。順番に進める。

パーティション作成

インストールするパーティションを作成するのですが、ここでちょっと考えないといけない。自分の環境にあわせて準備しないといけないということ。なので、インターネット上の誰かのブログ(これとかね)で書いてある通りに実行するのが最善というわけではない。

詳しくはArchLinuxのマニュアルのパーティショニングを確認するべきです。

パーティションテーブル

まず、昔ながらのMBRにするのか、最近のGPTにするのか選ぶ。マニュアルにはこう書いてある。
ブートローダに GRUB Legacy を使う場合、MBR を使うべきです。 古い BIOS を使う Windows (32ビット、64ビット両方) とのデュアルブートをするなら、MBR を使うべきです。 BIOS の代わりに UEFI を使う64ビットの Windows とデュアルブートをするなら、GPT を使うべきです。 上の条件に当てはまらないなら、自由に GPT と MBR を選んでください。GPT の方が新しいので、ここでの推奨は GPT です。 UEFI ブートではいつでも GPT を使うことが推奨されます。UEFI ファームウェアによっては UEFI-MBR ブートが出来ないからです。

今回はGURB Legacyは使わない(普通のGURBを使う予定)し、デュアルブートもしないし、UEFIでもないけど推奨がGPTだからGPTに決定。BIOS-GPTということ。

パーティション形態

パーティションを分割するかどうかについても、「このスキームが一番シンプルで、ほとんどの場合これで十分です。」と書いてあるシングルrootパーティションでいいということにしてみる。あとで分割も可能みたいだし。

スワップ

仮想メモリの領域になり、昔からLinuxを入れるときにはおまじないのように作るのが当たり前で、実メモリの2倍くらいの大きさは必要(この辺はWindowsのスワップと同じだ)となっていたが、近年のメモリの大容量化のおかげで、現在のところ2GB以上の物理メモリがあれば不要ということになっている。ちょうど2GBのメモリがあるのでswapは無しということで。

じゃあ、これでいいか・・・とマニュアルを読み進めると、「GPTを使う」という項目にノート発見。

BIOS 環境で GPT でパーティションされたディスクから起動するとき、GRUB を使ってディスクを起動する場合は、出来る限りディスクの最初に、ファイルシステムがなくてパーティションタイプが BIOS boot か bios_grub (gdisk タイプコード EF02) の BIOS boot partition を作成する必要があります。Syslinux ではこの bios_grub パーティションを作る必要はありませんが、/boot パーティションは分割して、(gdisk を使って) パーティションの Legacy BIOS Bootable partition 属性を有効にしなくてはなりません。

うーん。どうやら今回のBIOS-GPT-GRUBの組み合わせだと先頭にBIOS Boot partitionというものを作成するようです。

パーティション構成のまとめ


すると構成は、
  • BIOS Boot partition (1007KiB)
  • / (残り全部)

で良いかと思う。

cgdiskで分割


GPTを使う場合はcgdiskというコマンドを使う。

root@archiso ~ # cgdisk /dev/sda


を実行すればいい。/dev/sdaというのは、SATAかSCSI接続のデバイスの1番目。通常はハードディスクで、今USBメモリで起動しているので/sdbがUSBメモリになっていると思う。

なんらかのパーティションが存在しているなら、一度削除しないといけない。

↑と↓のキーで、編集したいパーティションにあわせて、←と→で処理を選ぶ。今は削除したいのでDeleteを選んでEnterを押すと表示から消える。全部消してみる。

でもまだ書かれていないのでWriteを選択。英語で「本当に書いちゃっていいの?」と聞かれるので「yes」Enterで書き込まれる。

準備はできたので、今度は作ってみる。

  1. 何もパーティションがないので↑↓は無意味。←→でNewを選ぶEnter
  2. First Sector ... とか聞かれるけど、そのままEnter
  3. Size in sector ... と聞かれるけど、そのままEnter (デフォルトは全部)
  4. Current type is ... Hex code or ... とかってタイプを聞かれるけどEnter
  5. Current partition name is とかって名前を聞かれるので「/」スラッシュでEnter
これで勝手に1007.0 KiB の free spaceと、1番目の/のパーティションができた。

多分選択は1007.0KiBのところにあると思うが、もし違うところにいっているならここにあわせてNewを実行。

  1. First sector... はEnter
  2. Size in sectors... もEnter
  3. Hex Codeは「ef02」と入力、Enter
  4. Enter new partition name もEnter
で、free spaceだった1007.0KiBのスペースがBIOS boot partitionという名前になる。

→を押してWrite、yes、Quitで終了。
これでハードディスクが予定通りパーティショニングできた。
/dev/sda1と/dev/sda2になっているはず。

フォーマット


Linuxで使えるフォーマットはかなり多くあるのですが、通常は一番新しいフォーマットを使うことが多いように思えます。今回だとext4が有力候補。

今回はSSDにインストールしないといけないので、ArchLinuxのマニュアルのソリッドステートドライブを確認。とりあえずTrimをネイティブサポートしているものじゃないとダメらしい。ext4は大丈夫みたい。

誰か教えて下さいとgoogle先生に聞いたところ、「Arch Linux を SSD に移した時のメモ」という素敵なページを発見。

普通に

root@archiso ~ # mkfs.ext4 /dev/sda1
root@archiso ~ # mkfs.ext4 /dev/sda2

実行するとやっていいかy/nで聞かれるのでyで答えるとフォーマットされる。フォーマットしたら、

root@archiso ~ # hdparm -I /dev/sda | grep TRIM

でTRIM supportedと出るか確認。TRIMをサポートしていたら/mnt/etc/fstabを生成したあとでマウントフラグに編集を加えれば良いということのようだ。

マウントのオプションにdefaults,noatime,discardを書き込むということらしいので意味を調べてみる。fstabの説明ページ

defaults:使われるファイルシステムのデフォルトのマウントオプション
noattime:ファイルを読んだだけで更新情報を書き込まないのでパフォーマンスアップ
discard:ブロックがフリーになった時にTRIMコマンドを実行(SSDは推奨)

最初に書いたソリッドステートドライブの中の「マウントフラグでTRIMを有効にする」というところに書いてあるオプションのようです。その後ろの「ファイルシステムの選択」のEXT4でもdiscardオプションを有効にすると書いてあるので、今回はこれを採用。


マウントする

ようやくここまできた・・・。ArchLinuxのビギナーズガイドにも書いてありますが、/のrootをマウントすれば良い。

root@archiso ~ # mount /dev/sda1 /mnt

これでrootのパーティションがマウントされる。

長くなるから一度ここで切る。
ここまでくれば、次は用意したドライブへのインストールになる。

尚、ここで運悪く電源が落ちても、USBメモリで再起動して

root@archiso ~ # loadkeys jp106
root@archiso ~ # wifi-menu ネットワークアダプタ名
root@archiso ~ # timedatectl set-ntp true
root@archiso ~ # mount /dev/sda1 /mnt

でここまで戻れるはず(フォーマットはすでに行っているので)。
あれ?意外と少ないな(笑)悩んでる時間のほうが長いということのようです。

ここまでの手順は、もし起動しなくなった時に使えるので覚えておくととても良いと思います。


目次に戻る 

0 件のコメント:

コメントを投稿