今回は、Live CD ならぬ Live USB を作成してみたいと思います。
Live USBをWindows上で作成できる作成ツールとして有名なのは、LinuxLive USB Creator ではないかと思います。(個人的に新しいディストリビューションを試したい場合などには、利用しています。)
あるいは、Fedora(CentOS系)では、fedora liveUSB Creator あたりも有名です。
このLive USBの特徴は、1つのUSBで Live CD/DVD と同じ機能を有し、
さらに、Live起動した際にデータを変更した内容を保存するエリアを確保し、差分を保存することができる点にあります。
個人的には、データ保存をさせたいためにLive USBを作成しますし、使用します。
上記のツール群は、Debian 7以降、データ保存の方法が変更になったことが起因しているのか?、
保存するエリアを確保しても差分を保存してくれませんでした。
どうしても、Debian 8 において、Live USBの作成が必要だったため、結局、Debian上で、Debian 8 の Live USBを作成しました。
その際の備忘録もかねて、以降、簡単に解説してみたいと思います。
- 目次
- 履歴
2015.07.12 初版
Debian 8 Live DVD を使って Live USBを作ってみる
Debian の Live USBを作成する方法で最も簡単な方法は、Debian 8 Live CD/DVD(ここでは、isoファイルを用います)を使うことです。
簡単に解説してみます。
必ず、確認の上、指定してください。 もし、ここで貴重なハードディスクなどを指定すると全部消えてしまうので、必ず、確認の上、実行してください。
/dev/disk/by-id/ を確認すると、なんとなくわかるかもしれません。
|
Live USBを作ってみる
- 最新の Debian 8 Live CD/DVD isoファイルをダウンロードします。
Debian の Live CD/DVD isoファイルは、https://www.debian.org/CD/live/ からダウンロードできます。
# ここでは、32bit版 MATEデスクトップ環境のLive イメージをダウンロードします。 $ wget http://cdimage.debian.org/debian-cd/current-live/i386/iso-hybrid/debian-live-8.1.0-i386-mate-desktop.iso
- ddコマンドを使って、USBで丸ごとコピーします。
# 先にダウンロードした MATEデスクトップ環境のLive イメージ ファイルを USBへコピーします。 $ dd if=debian-live-8.1.0-i386-mate-desktop.iso of=/dev/sdb bs=2048k ...
上記の bs=2048k は、転送バイト数になります。
ここで何も指定しないと、コピー時間が長くなることがあります。
- fdisk コマンドで保存用のパーティションを作成します。
# fdisk コマンドでパーティションを作成します。 $ fdisk /dev/sdb # 現在のパーティションを確認しておきます。 Command (m for help): p Disk /dev/sdb: 15.5 GB, 15502147584 bytes 71 heads, 32 sectors/track, 13326 cylinders, total 30277632 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 Disk identifier: 0x716909bf Device Boot Start End Blocks Id System /dev/sdb1 * 64 2296991 1148464 17 Hidden HPFS/NTFS # 変更データ保存用に新規にパーティションを作成します。 # ここでは、プライマリで、4Gとします。 Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (1-4, default 2): 2 First sector (2296992-30277631, default 2296992): Using default value 2296992 Last sector, +sectors or +size{K,M,G} (2296992-30277631, default 30277631): +4G # 作成したパーティションを確認します。 Command (m for help): p Disk /dev/sdb: 15.5 GB, 15502147584 bytes 71 heads, 32 sectors/track, 13326 cylinders, total 30277632 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 Disk identifier: 0x716909bf Device Boot Start End Blocks Id System /dev/sdb1 * 64 2296991 1148464 17 Hidden HPFS/NTFS /dev/sdb2 2296992 10685599 4194304 83 Linux # 作成したパーティションを保存します。 # 保存しないと、ここで作成したパーティションは、消去します。 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
- mkfs コマンドでパーティションをフォーマットします。
# ここでは、ext4 でフォーマットします。 $ mkfs.ext4 /dev/sdb2 -L persistence ...
保存用パーティションは、ext3 or ext4 でないといけません。
また、ラベルに persistence も付与しないと保存できないので注意しましょう。
ここで指定した パーティションパス : /dev/sdb2 は、くれぐれも間違いがないようにしましょう。 ここで、指定を誤ると貴重なデータが消去されかねません。十分、確認の上、実行しましょう。
- 保存対象ディレクトリを指定します。
先に作成したパーティションの直下に persistence.conf という名前のファイルに、保存対象ディレクトリを指定します。
# 作成したパーティションをマウントするディレクトリを作成します。 $ mkdir /mnt/usb2 # 作成したパーティションをマウントします。 $ mount /dev/sdb2 /mnt/usb2 # 作成したパーティションの直下に persistence.conf を作成し、"/" 配下の変更を全て保存するように指定します。 $ echo "/ union" > /mnt/usb2/persistence.conf # マウントを解除します。 $ umount /mnt/usb2
persistence.conf の指定方法は、
単純にディレクトリパスを指定すればOKです。 union オプションを指定した場合は、データの差分を保存します。差分を保存することで、保存する容量を節約することができます。
その他にもオプションがあります。興味のある方は、http://live.debian.net/devel/rfc/persistence/ を参照してください。
Live USBを使ってみる
- 先に作成した USBを指して、システムリブートします。
この時、必ず、BIOSの BOOT設定 (各システムで異なる) を USBからの起動を最優先としておきます。
- Debian 起動画面が表示されたら、起動パラメータに persistence を追記し、起動します。
[ Live 586 ] を選択したまま、Tab キーでパラメータ編集可能となります。
そこで、 persistence を追記します。persistence を追記しないと起動後にデータの変更などを行っても保存されません。正しく起動できれば、以下のようにMATEのデフォルト画面が表示されます。
- 正しく変更が保存できるか確認してみます。
[ Applications ] – [ System ] – [ Mate Terminal] で コンソールが開きます。
ここで適当なテキストファイルを作成してみます。$ echo aaa > aaa.txt $ ls aaa.txt ...
ここで、システムの再起動を実行します。
$ sudo reboot ...
システムの再起動時にも、先の説明と同様、Debian 起動画面にて 起動パラメータに persistence を追記し、起動します。システムの再起動が完了したら、先と同じように コンソールを開いてみます。
ls コマンドで、確かに aaa.txt が残っていますね。
このように簡単に Live USBを作成することができました。
ただ、上記のように毎回 起動パラメータに persistence を入力するのも面倒ですし、画面がすべて英語の画面です。
そこで、次はデフォルト日本語 とし、先の起動パラメータも指定しなくて良いようにカスタマイズしてみます。
カスタマイズ Debian 8 Live USBを作ってみる
今度は、カスタマイズした Debian 8 Live USB を作成してみます。
先の Debian 8 Live CD/DVD を用いる場合と異なる点は、isoファイルをダウンロードするか、自ら作成するかの違いのみです。
では、簡単に解説してみます。
必ず、確認の上、指定してください。 もし、ここで貴重なハードディスクなどを指定すると全部消えてしまうので、必ず、確認の上、実行してください。
/dev/disk/by-id/ を確認すると、なんとなくわかるかもしれません。
|
Live USBを作ってみる
- live-build パッケージをインストールします。
Debian の Live isoファイルを作成する場合、lb コマンドを使って作成します。 その lb コマンド 関連一式が、live-build パッケージになります。まずは、live-build パッケージをインストールします。
$ apt-get install live-build ...
- Live isoファイル の作成ディレクトリを作成します。
$ mkdir live
- Live isoファイル のカスタマイズ設定を行います。
これより作成する Live isoファイルのカスタマイズの指定を行います。
# まずは、作業ディレクトリを作成します。 $ mkdir live # 先の作業ディレクトリで設定作業を行います。 $ cd live # パッケージのダウンロードを速くするために ミラーサイトを全て日本に切り替えます。 [live]$ lb config --parent-mirror-bootstrap "http://ftp.jp.debian.org/debian/" [live]$ lb config --parent-mirror-binary "http://ftp.jp.debian.org/debian/" [live]$ lb config --mirror-bootstrap "http://ftp.jp.debian.org/debian/" [live]$ lb config --mirror-binary "http://ftp.jp.debian.org/debian/" [live]$ lb config --mirror-chroot "http://ftp.jp.debian.org/debian/" # パッケージアーカイブ領域を"main contrib non-free"としておきます。 # - ここは、ライセンスの問題もあるので、必要に応じて変更してください。 # - ここでは、まずは、確実に動作するような設定としておきたいので、以下の指定をしています。 [live]$ lb config --parent-archive-areas "main contrib non-free" [live]$ lb config --archive-areas "main contrib non-free" # Live起動パラメータを指定します。 # - boot=live : live起動 # - persistence : 変更保存 # - noeject : Liveメディアの取り出し確認を行わない # - live-config.utc=no : ハードウェア時刻がUTCでセットされていない # - live-config.locales=ja_JP.UTF-8 : デフォルトロケールを ja_JP.UTF-8とする(UTF8日本語) # - live-config.keyboard-model=jp106 : デフォルトキーボードを ja106とする(日本語106キーボード) # - live-config.keyboard-layouts=jp : デフォルトキーボード配列を jaとする(日本語) [live]$ lb config --bootappend-live "boot=live config persistence noeject live-config.utc=no live-config.locales=ja_JP.UTF-8 live-config.keyboard-model=jp106 live-config.keyboard-layouts=jp" # Live isoに追加するパッケージを指定します。 # - config/package-lists/ 配下に ".list.chroot" の拡張子を持つファイルを作成し、そのファイルに追加するパッケージ名を列挙すれば良いです。 # - ここでは、config/package-lists/custom.list.chroot として、MATEデスクトップ環境と日本語環境のパッケージを列挙しておきます。 [live]$ vi config/package-lists/custom.list.chroot ... task-japanese task-japanese-desktop task-mate-desktop task-japanese-gnome-desktop ibus-mozc # Live起動画面で 選択することなく 5秒後に自動的にLive起動するように変更します。 # - Live起動画面の変更は、で 選択することなく 5秒後に自動的にLive起動するように変更します。 [live]$ vi config/binary/isolinux/isolinux.cfg include menu.cfg default vesamenu.c32 prompt 0 timeout 5
以降の解説で出てきますが、Debian起動画面(スプラッシュ画面)の背景画像を変更したい場合は、 config/binary/isolinux/cat stdmenu.cfg を作成、編集すると良いでしょう。
必要に応じて、menu color なども変更するとより画面が自分好みにカスタマイズされるでしょう。# Live起動画面の背景画像を変更します。 # - menu background : 背景画像ファイル名を指定します。 [live]$ vi config/binary/isolinux/isolinux.cfg menu background org_splash.png menu color title * #FFFFFFFF * menu color border * #00000000 #00000000 none menu color sel * #ffffffff #76a1d0ff * menu color hotsel 1;7;37;40 #ffffffff #76a1d0ff * menu color tabmsg * #ffffffff #00000000 * menu color help 37;40 #ffdddd00 #00000000 none menu vshift 12 menu rows 10 menu helpmsgrow 15 # The command line must be at least one line from the bottom. menu cmdlinerow 16 menu timeoutrow 16 menu tabmsgrow 18 menu tabmsg Press ENTER to boot or TAB to edit a menu entry
書式 :MENU COLOR element ansi foreground background shadow
(foreground background は、#AARRGGBB 形式)
概ね理解できるかとは思いますが、詳しく知りたい方は、http://www.syslinux.org/wiki/index.php/Menu を参照されると良いでしょう。ISOLINUX : CD-ROMなどで使われるISO 9660ファイルシステムからLinuxカーネルをブートするプログラム。
- Live isoファイル を作成します。
設定を終えたら、Live isoファイルを作成します。
# 設定を終えたら、lbコマンドでビルドします。 [live]$ lb build ...
ビルドは、最初はパッケージのダウンロードも行うので、かなり時間を要します。(自前の古いマシン環境で 45 分ほど掛かりました。)
# ビルドが終了したら、isoファイルを確認します。 [live]$ ls ... live-image-i386.hybrid.iso ...
.hybrid.iso という拡張子のISOファイルが存在すればOKです。
- ddコマンドを使って、USBで丸ごとコピーします。
# 先に作成したLive イメージ ファイルを USBへコピーします。 [live]$ dd if=live-image-i386.hybrid.iso of=/dev/sdb bs=2048k ...
上記の bs=2048k は、転送バイト数になります。
ここで何も指定しないと、コピー時間が長くなることがあります。
- fdisk コマンドで保存用のパーティションを作成します。
# fdisk コマンドでパーティションを作成します。 $ fdisk /dev/sdb # 現在のパーティションを確認しておきます。 Command (m for help): p Disk /dev/sdb: 15.5 GB, 15502147584 bytes 71 heads, 32 sectors/track, 13326 cylinders, total 30277632 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 Disk identifier: 0x716909bf Device Boot Start End Blocks Id System /dev/sdb1 * 64 2296991 1148464 17 Hidden HPFS/NTFS # 変更データ保存用に新規にパーティションを作成します。 # ここでは、プライマリで、4Gとします。 Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (1-4, default 2): 2 First sector (2296992-30277631, default 2296992): Using default value 2296992 Last sector, +sectors or +size{K,M,G} (2296992-30277631, default 30277631): +4G # 作成したパーティションを確認します。 Command (m for help): p Disk /dev/sdb: 15.5 GB, 15502147584 bytes 71 heads, 32 sectors/track, 13326 cylinders, total 30277632 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 Disk identifier: 0x716909bf Device Boot Start End Blocks Id System /dev/sdb1 * 64 2296991 1148464 17 Hidden HPFS/NTFS /dev/sdb2 2296992 10685599 4194304 83 Linux # 作成したパーティションを保存します。 # 保存しないと、ここで作成したパーティションは、消去します。 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
- mkfs コマンドでパーティションをフォーマットします。
# ここでは、ext4 でフォーマットします。 $ mkfs.ext4 /dev/sdb2 -L persistence ...
保存用パーティションは、ext3 or ext4 でないといけません。
また、ラベルに persistence も付与しないと保存できないので注意しましょう。
ここで指定した パーティションパス : /dev/sdb2 は、くれぐれも間違いがないようにしましょう。 ここで、指定を誤ると貴重なデータが消去されかねません。十分、確認の上、実行しましょう。
- 保存対象ディレクトリを指定します。
先に作成したパーティションの直下に persistence.conf という名前のファイルに、保存対象ディレクトリを指定します。
# 作成したパーティションをマウントするディレクトリを作成します。 $ mkdir /mnt/usb2 # 作成したパーティションをマウントします。 $ mount /dev/sdb2 /mnt/usb2 # 作成したパーティションの直下に persistence.conf を作成し、"/" 配下の変更を全て保存するように指定します。 $ echo "/ union" > /mnt/usb2/persistence.conf # マウントを解除します。 $ umount /mnt/usb2
persistence.conf の指定方法は、
単純にディレクトリパスを指定すればOKです。 union オプションを指定した場合は、データの差分を保存します。差分を保存することで、保存する容量を節約することができます。
その他にもオプションがあります。興味のある方は、http://live.debian.net/devel/rfc/persistence/ を参照してください。
Live USBを使ってみる
- 先に作成した USBを指して、システムリブートします。
この時、必ず、BIOSの BOOT設定 (各システムで異なる) を USBからの起動を最優先としておきます。
- Debian 起動画面が表示されたら、自動でLive起動することを確認します。
このヘルメット画像が嫌な方は、こちらを参照の上、背景画像をカスタマイズしましょう。先のカスタマイズ設定にて 5秒後にタイムアウトが発生し、デフォルトの [ Live 586 ] が起動されることを確認します。
正しく起動できれば、以下のようにMATEのデフォルト画面が表示されます。 ここでも日本語表記になっていることを確認します。
- 正しく変更が保存できるか確認してみます。
[ アプリケーション ] – [ システム ] – [ Mate端末 ] で コンソールが開きます。
ここで適当なテキストファイルを作成してみます。$ echo aaa > aaa.txt $ ls aaa.txt ...
ここで、システムの再起動を実行します。
$ sudo reboot ...
システムの再起動が完了したら、先と同じように コンソールを開いてみます。
ls コマンドで、確かに aaa.txt が残っていますね。
このように 自分専用の Live USBを作成することができました。
さらにカスタマイズも “Ubuntu Customization Kit”(UCK)などのパッケージもありますから、それほど不便でもないかもしれません。
DebianでもGUIのツールキット(live-magic) があります。 上記のように CUIでせくせくやるのが好みでない方は、live-magic を試されても良いかもしれません。
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
コメントを投稿 :