turtlechanのブログ

無知の私がLinuxをいじりながら書いていくブログ

Linuxインストールメディア作成(USB)

PCにOSをインストールする機会って割と少ないですよね。

Linuxを入れたいんだけど、USBをインストールメディアにするのどうやったっけってなるので備忘録。

用意するもの

USBメモリ
8GB以上あれば十分。最近のはファイルサイズが大きくなってきているのでもっと必要かも。
※中身のデータは消えてしまうためバックアップを取っておくこと。
パソコン
OSは何でもいい。今回はWindowsLinuxを想定。
Linuxのイメージファイル(iso)
好きなディストリビューションをダウンロードしとく。
理化学研究所(http://ftp.riken.jp/Linux/)あたりからダウンロードすれば良い。

Windowsで作成する場合

Windowsの場合ブート可能なUSBにするためにRufusというOSS(オープンソースソフト)が必要。Rufusは圧縮もされておらずインストールも必要なくて手軽なのが良い。

Rufusのダウンロード

Rufusのサイトへ行きダウンロード。最新版でいいでしょう。

Rufusのダウンロードページ

Rufusの起動

今回VirtualBox上のWindowsXPで行ったため最新版は起動せず。やむなくrufus-1.4.12を使用してます。

先程ダウンロードしてきたrufus-x.x.exeをダブルクリックで起動する。ユーザーアカウント制御のダイアログが表示された場合は、「はい」を押す(XPだから出ないorz)

セキュリティ警告のダイアログ

初回のみ、以下のダイアログが表示される。

Rufusのアップデートポリシーのダイアログ

私の更新を確認するのにインターネットに接続するけどいい? はい or いいえ(お好みで)

RufusでUSBに書き込む

バージョンが古いため現在のRufus画面と違いがあるが、流れは同じ。

  1. バイスのプルダウンメニューからUSBのドライブを選択
  2. 「ブートディスクを作る」の右側のプルダウンメニューから「ISOイメージ」を選択
  3. さらに2の右のアイコンからLinuxのisoファイルを選択
  4. スタートをクリック
  5. 現在USBに保存されてるデータ消えちゃうけどいい?と聞かれるので「OK」をクリック

Rufusウィンドウの説明画像

Rufusの書き込み前警告のダイアログ

USBに書き込みが始まります。時間が掛かるので紅茶でも飲んで待ちましょう。以下完了画面。

Rufusの書き込み完了時のウィンドウ画像

これでインストールメディア完成。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の起動順位の変更を忘れないようにね。