Linuxインストールメディア作成(USB)
PCにOSをインストールする機会って割と少ないですよね。
Linuxを入れたいんだけど、USBをインストールメディアにするのどうやったっけってなるので備忘録。
用意するもの
- USBメモリ
- 8GB以上あれば十分。最近のはファイルサイズが大きくなってきているのでもっと必要かも。
※中身のデータは消えてしまうためバックアップを取っておくこと。 - パソコン
- OSは何でもいい。今回はWindowsかLinuxを想定。
- Linuxのイメージファイル(iso)
- 好きなディストリビューションをダウンロードしとく。
理化学研究所(http://ftp.riken.jp/Linux/)あたりからダウンロードすれば良い。
Windowsで作成する場合
Windowsの場合ブート可能なUSBにするためにRufusというOSS(オープンソースソフト)が必要。Rufusは圧縮もされておらずインストールも必要なくて手軽なのが良い。
Rufusのダウンロード
Rufusのサイトへ行きダウンロード。最新版でいいでしょう。
Rufusの起動
今回VirtualBox上のWindowsXPで行ったため最新版は起動せず。やむなくrufus-1.4.12を使用してます。
先程ダウンロードしてきたrufus-x.x.exeをダブルクリックで起動する。ユーザーアカウント制御のダイアログが表示された場合は、「はい」を押す(XPだから出ないorz)
初回のみ、以下のダイアログが表示される。
私の更新を確認するのにインターネットに接続するけどいい? はい or いいえ(お好みで)
RufusでUSBに書き込む
バージョンが古いため現在のRufus画面と違いがあるが、流れは同じ。
- デバイスのプルダウンメニューからUSBのドライブを選択
- 「ブートディスクを作る」の右側のプルダウンメニューから「ISOイメージ」を選択
- さらに2の右のアイコンからLinuxのisoファイルを選択
- スタートをクリック
- 現在USBに保存されてるデータ消えちゃうけどいい?と聞かれるので「OK」をクリック
USBに書き込みが始まります。時間が掛かるので紅茶でも飲んで待ちましょう。以下完了画面。
これでインストールメディア完成。USBの中身はこんな感じになる。
Linuxで作成する場合
Linuxではddコマンドを使うだけなので、特に別途ソフトは必要ない。
注意点としてはUSBがマウントされていると失敗するので、ddコマンドの前に確認すること。自動でマウントされていることがよくある。
デバイス名の確認
環境によってデバイス名は異なるため、都度確認が必要。
パソコンにUSBを挿入し、端末(ターミナル)を起動する。
「sudo fdisk -l」か「sudo dmesg」でデバイス名の確認ができる。
「sudo fdisk -l」の実行結果
$ sudo fdisk -l
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8e58fa60
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 487423 485376 237M 83 Linux
/dev/sda2 489470 976771071 976281602 465.5G 5 Extended
/dev/sda5 489472 976771071 976281600 465.5G 8e Linux LVM
~中略~
Disk /dev/sdb: 7.5 GiB, 8075140608 bytes, 15771759 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0001e68f
Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 2048 15771758 15769711 7.5G c W95 FAT32 (LBA)
「sudo dmesg」の実行結果
$ sudo dmesg
[ 0.000000] Linux version 4.9.0-8-amd64 (debian-kernel@lists.debian.org) (gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) ) #1 SMP Debian 4.9.144-3 (2019-02-02)
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.9.0-8-amd64 root=/dev/mapper/debian-root ro quiet
~中略~
[11130.505609] sd 6:0:0:0: [sdb] Attached SCSI removable disk
以上からUSBのデバイス名は「sdb」であることが確認できる。
ddコマンドでUSBに書き込む
ddコマンドで書き込む前にUSBがマウントされていないことを確認する。
「mount」コマンドで現在マウントされているデバイスの確認ができる。
$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
~中略~
/dev/sdb1 on /mnt/usb type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)
上記の場合、/dev/sdb1が/mnt/usbにマウントされている。
「umount」コマンドでアンマウントする。
書式
umount [マウント先のディレクトリ]
$ sudo umount /mnt/usb
何も表示されないが正常にアンマウントできているはず。
Linuxのイメージファイルがあるディレクトリに移動して「dd」コマンドでUSBに書き込む。
書式
dd if=[isoファイルのパス] of=[書き込み先USBデバイスのパス] bs=[ブロックサイズ]
$ sudo dd if=./debian-9.8.0-amd64-DVD-1.iso of=/dev/sdb bs=1M
3456+0 レコード入力
3456+0 レコード出力
3623878656 bytes (3.6 GB, 3.4 GiB) copied, 705.922 s, 5.1 MB/s $ sudo sync
以上で完成。最後のsyncはメモリにバッファされたすべてのデータを書き出す(おまじない)。
おわりに
OSをインストールする際、BIOSの起動順位の変更を忘れないようにね。