USBメモリからブート(Jessie)

2016/8/29,2016/9/20


USBメモリからDebianをブート

3年前にWheezyで同じようなことをしているが、Jessieでは以前の手順と少し違っていたのでメモを残す。
USBメモリからブートする理由・・・それは「借り物のパソコンなので、ご迷惑を掛けることなく、Debianを使いたい。」と言う点で前回と同じである。

方針

USBメモリにインストールするDebian Linuxは以下のようにしたい。
     
  1. USBメモリからブートできる。  
  2. デスクトップ環境はxfce (ftp://ftp1.debian.or.jp/debian-cd/8.5.0/i386/iso-cd/debian-8.5.0-i386-xfce-CD-1.iso)
  3. 設定の変更やユーザが作成したデータ等が保存できる。(USBメモリの容量次第)
  4. MPLABxとPICkit3が使用できる。

準備

live-builder関連のパッケージをインストールする。
#Debian上 管理者権限で実行
apt-get remove libreoffice-core gimp -y;apt-get autoremove -y;apt-get update;apt-get upgrade -y
apt-get install live-build live-boot live-config -y
apt-get install tree sl -y

mkdir ~/debian-live
cd ~/debian-live

#live boot環境の確認
#もっとも簡単なdebian-liveをつくる(コンソールベースでdebian-liveがうごく)
lb config && lb build
#lb buildは40分くらいかかる
#live-image-i386.hybrid.iso(約1GB)ができる

自分環境のdebian-liveをつくる

live-buildの動作が確認できたので、デスクトップ環境他を細かく設定する。
デフォルトの設定では「dd: `debian-live/chroot/usr/lib/syslinux/mbr.bin` を開けませんでした: そのようなファイルやディレクトリはありません」と表示され、ブートイメージの作成に失敗する。
lb cleanを実行するとchroot以下は削除され、lb buildの実行中にchroot/以下のディレクトリが生成される。問題は、このときにdebian-live/chroot/usr/lib/syslinuxは作られず、debian-live/chroot/user/lib/SYSLINUXが作られる点である。
lb build前にdebian-live/chroot/user/lib/SYSLINUXを用意し、debian-live/chroot/usr/lib/syslinuxにリンクすることで問題を回避した。
順調に作業が進むと、~/debian-live/live-image-i386(約900MB)ができる。
#Debian(x86)上 管理者権限で実行
lb clean
lb config --bootappend-live \
	"boot=live config persistence noeject live-config.utc=no live-config.locales=ja_JP.UTF-8 live-config.keyboard-layouts=jp live-config.keyboard-model=jp106 live-config.keyboard-layout=jp live-config.timezone=Asia/Tokyo"

lb config --binary-images hdd
lb config --parent-archive-areas "main contrib non-free"
lb config --archive-areas "main contrib non-free"

lb config --parent-mirror-bootstrap "http://ftp.jp.debian.org/debian/"
lb config --parent-mirror-binary "http://ftp.jp.debian.org/debian/"
lb config --mirror-bootstrap "http://ftp.jp.debian.org/debian/"
lb config --mirror-binary "http://ftp.jp.debian.org/debian/"
lb config --mirror-chroot "http://ftp.jp.debian.org/debian/"
lb config --tasksel aptitude --tasks "japanese japanese-desktop"

mkdir config/package-lists
cd config/package-lists
echo "task-japanese" > xfce-japanese.list.chroot
echo "task-japanese-desktop" >> xfce-japanese.list.chroot
echo "task-xfce-desktop" >> xfce-japanese.list.chroot
echo "less" >> xfce-japanese.list.chroot
echo "tree" >> xfce-japanese.list.chroot

echo "make" >> xfce-japanese.list.chroot
echo "ssh openssh-client openssh-server"  >> xfce-japanese.list.chroot
echo "firmware-realtek" >> xfce-japanese.list.chroot

cd ~/debian-live/
mkdir -p config/includes.chroot/etc
mkdir -p config/includes.chroot/etc/default
cp /etc/bash.bashrc config/includes.chroot/etc
cp -a /etc/skel/ config/includes.chroot/etc
echo "Asia/Tokyo" > config/includes.chroot/etc/timezone 
cp /etc/default/keyboard config/includes.chroot/etc/default/keyboard
cd ~/debian-live

mkdir -p ~/debian-live/chroot/user/lib/SYSLINUX
cd ~/debian-live/chroot/user/lib/
ln -s SYSLINUX syslinux
cd ~/debian-live

date;time lb build;date
#45分くらいかかる live-image-i386(900MB)ができる

#-----------------
#USBメモリに書き込む  /dev/sdxに注意
umount /dev/sdx1 /dev/sdx2
time dd if=live-image-i386 of=/dev/sdx bs=32M
fdisk /dev/sdx
mkfs.ext4 /dev/sdx2 -L persistence
#tune2fs -L persistence /dev/sdx2
mount -t ext4 /dev/sdx2 /mnt
echo "/ union" >/mnt/persistence.conf
umount /mnt

起動オプションを修正

自分専用のDebian Liveができた。
このままでもよいが、自己主張したいので、少し加工する。
すでにDebian8が稼働しているマシンにUSBメモリ(My Debian Live USB)マウントし、つぎようにの修正を加える。
menu.cfginstall.cfgの一行を削除起動メニューに「install」を表示しない。
借り物のPCにインストールすることは避ける。
syslinux.cfgtimeout 0を30に修正起動までの待機時間を30秒に指定
splash.pnggimp等で加工起動メニューの中のsplash.png 絵(ヘルメット)をオリジナルな絵にする。

Debian Live

PICマイコン開発環境

PICマイコン開発環境をインストールする。
#-----------------
#My Debian Liveを起動
#管理者に移行
sudo -i
echo "blacklist pcspkr" >> /etc/modprobe.d/alsa-base-blacklist.conf

#MPLABx,xc8をインストール
wget http://www.takahashi.lab/~nt/technicalnote/debian8/mplabx/MPLABX-v3.40-linux-installer.sh
wget http://www.takahashi.lab/~nt/technicalnote/debian8/mplabx/xc8-v1.38-full-install-linux-installer.run
chmod 755 xc8-v1.40-full-install-linux-installer.run
./MPLABX-v3.40-linux-installer.sh
./xc8-v1.38-full-install-linux-installer.run

My Debian Live USB イメージをつくる

USBメモリを複製する準備として、USBメモリのイメージをつくる。
8GB(USB2.0)のUSBメモリで読み出し4分、書き込み20分程度かかる。(ddコマンドでbsオプションを変えたが、所要時間は30秒程度しか変わらなかった。)
umount /dev/sdx1 /dev/sdx2
dd if=/dev/sdx of=MyDebian8LiveUSB.img bs=32M
dd if=MyDebian8LiveUSB.img of=/dev/sdy bs=32M

ユーザ名・パスワード

デフォルトではブート後自動ログインする。ユーザ名やパスワードは不要になっている。
ログアウトした後は、再度ログインするときはユーザ名(user)とパスワード(live)が必要になる。
ブート後、いつものログイン画面を所望するならば、/etc/lightdm/lightdm.confをつぎのように設定を変更する。
[SeatDefaults]
・・・
#autologin-user=user   ;コメントアウト
#autologin-user-timeout=0   ;コメントアウト
・・・