MINIBIAN 最小構成のRASPBIAN (Raspberry Pi) ③
- 全然覚えられないIT業界用語シリーズ
- 続 Raspberry Piで遊ぶ
- GPartedでSDカードの操作
- MINIBIANディスクイメージをLinuxBean上にマウント
- ここで一度起動確認
- SDカードからディスクイメージを書き出す
- 今後
全然覚えられないIT業界用語シリーズ
IT業界の専門用語が全然覚えられない。
「IT」からいきなり略称だ。
これはInformation Technorogyの略だけれども、このように頭文字を並べた略称や覚えにくい用語がIT業界には大量に存在する。
しかもかぶっているものもあったりする。
このIT業界の用語が僕は好きになれないというか覚えられないんですすみません。
とりあえず最近覚えた、覚えたい、難しいと感じる略称・用語を挙げてみたい。
- ARP
Address Resolution Protocol
IPアドレスからEthernetのMACアドレスの情報を得られるプロトコル。 - ARM
ARMホールディングス(旧:Advanced RISC Machines社)で開発されているCPUのアーキテクチャの名称。 - LDAP
Lightweight Directory Access Protocol
軽量ディレクトリアクセスプロトコル。 - DHCP
Dynamic Host Configuration Protocol
動的ホスト設定プロトコル。 - RAID
Redundant Arrays of Inexpensive Disks または
Redundant Arrays of Independent Disks
複数台のハードディスクを組み合わせることで仮想的な1台のハードディスクとして運用し冗長性を向上させる技術(Wikipediaより抜粋)。 - クエリ
query。問い合わせ。 - クーリエ
courier。添乗員、案内人、ガイド。 - SQL
Structured English Query Languageが由来のデータベース言語。 - リゾルバ
resolver。解決者。ドメイン名を解決するもの。
パッと浮かんだものだけでもこれくらいある。 えらい偏ってる。 なんかややこしく聞こえるものがたくさんあるなぁ。 名称はあまり略さずに使用していただきたい。 イニシャル三文字シリーズがもう嫌で嫌で…。 VPNとかVPSとかVLANとかあああああぁぁぁぁ。
続 Raspberry Piで遊ぶ
RPiで引き続き遊んでみよう。
今回は以下の順番で、オリジナルのディスクイメージを作成してみたい。
- GPartedでSDカードにパーティションを作る。
64MBのFAT32領域と960MBのext4領域の起動用SDカードを作成する。 - MINIBIANのディスクイメージをLinuxBean上にマウントし、中身だけをSDカードの各領域にコピーする。
- その状態で起動できるか試す。
- 起動することが確認できたら、SDカードのその起動イメージを書き出す。
こうすることによって、RPiのイメージをPC上でいじったり、丸ごとバックアップすることができる。
GPartedでSDカードの操作
LinuxBeanでは標準でインストールされている、パーティション操作ツールだ。
GPartedイメージ
GPartedでSDカードのすべての領域を削除
まずは一度すべての領域を削除する。
間違ってもPCのパーティションを削除しないように!!
マウント状態だと削除できないので、各パーティションをアンマウントした状態で削除。
GPartedでFAT32領域を作成
次はFAT32領域を作成。なぜかわからないが、前方に1MBの空き領域を作成しなければならないようなので、実際には63MBのFAT32領域となる。
GPartedでext4領域を作成
追加ボタンをクリックして完了。
GPartedでのパーティショニング完了
これで「↵」ボタンを押して適用すれば、パーティショニングが完了する。
MINIBIANディスクイメージをLinuxBean上にマウント
まずは下記のように、カレントディレクトリを整理しよう。
% ls -l drwxrwxr-x 5 tokixy56 tokixy56 4096 Jan 31 17:10 . drwxrwxr-x 6 tokixy56 tokixy56 4096 Jan 19 23:04 .. ... -rwxrwxr-x 1 tokixy56 tokixy56 832569344 Jan 20 23:55 2015-11-12-jessie-minibian.img drwxrwxr-x 2 tokixy56 tokixy56 4096 Jan 19 22:05 mnt
2015-11-12-jessie-minibian.imgがMINIBIANのディスクイメージである。 カレントディレクトリにmntディレクトリを作成しておき、ここにマウントするようにしたい。
MINIBIANディスクイメージのFAT領域をマウント
まずは、fdiskコマンドでディスクイメージの情報を確認する。
% fdisk -l 2015-11-12-jessie-minibian.img Disk 2015-11-12-jessie-minibian.img: 832 MB, 832569344 bytes 255 heads, 63 sectors/track, 101 cylinders, total 1626112 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: 0x00000000 Device Boot Start End Blocks Id System 2015-11-12-jessie-minibian.img1 16 125055 62520 b W95 FAT32 2015-11-12-jessie-minibian.img2 125056 1626112 750528+ 83 Linux
次に、ディスクイメージの情報をみて、オフセットを調べる。 上記の情報ではStart位置は16、これはブロックサイズ、つまりセクタサイズだ。 コマンドの下に表示されている「Units = sectors...」にあるように、1セクタは512バイト。 よって、512byte×16=8192バイトずらしたところがマウントする先頭位置となる。
% sudo mount -t vfat -o loop,offset=8192 2015-11-12-jessie-minibian.img mnt
これでmntディレクトリにFAT領域がマウントされる。
この中身をすべてSDカードのFAT32領域にコピーする。
GUIのファイルマネージャ(PCManFM)ではコピーできなかったので、僕はこのコマンドを使用した。
% sudo cp -r mnt/* /media/tokixy56/[FAT32のディレクトリ]
コピーが完了したら、アンマウントを忘れないように。
% sudo umount mnt
MINIBIANディスクイメージのext4領域をマウント
次はext4領域をマウントする。
sudo mount -t ext4 -o loop,offset=64028672 2015-11-12-jessie-minibian.img mnt
これもFAT32の時と同じように512byte×先頭位置で計算した値をoffset値としてセットする。
RPiのrootディレクトリがmntにマウントされていることがわかる。
これもSDカードのext4領域にコピーする。
% sudo cp -r mnt/* /media/tokixy56/[ext4のディレクトリ]
コピーが完了したら忘れずにumount。
ここで一度起動確認
何事もなければ起動するはず。
起動しない場合はもう一度手順を確認してみよう。
SDカードからディスクイメージを書き出す
ddコマンドを利用して、先ほど作成したSDカードのディスクイメージをPCへ書き出す。
ddコマンドでSDカードから書き出し
sudo dd if=/dev/sd[SDカード] of=minibian.img bs=512 count=2097152
僕の場合は/dev/sdgがSDカードデバイスだった。
出来上がったファイルをfdisk -lコマンドでみてみる。
% fdisk -l minibian.img ... Device Boot Start End Blocks Id System minibian.img1 2048 131071 64512 b W95 FAT32 minibian.img2 131072 2097151 983040 83 Linux % fdisk -l 2015-11-12-jessie-minibian.img ... Device Boot Start End Blocks Id System 2015-11-12-jessie-minibian.img1 16 125055 62520 b W95 FAT32 2015-11-12-jessie-minibian.img2 125056 1626112 750528+ 83 Linux
元々のMINIBIANのディスクイメージとは、Startセクタやブロックサイズが異なることがわかる。
このようにすれば、自分が作成したSDカードの状態をそのままバックアップとして保存できるため便利だ。
また、前述のマウントの手順を踏めば、自分が作成したディスクイメージも同じようにマウントできる。
自分が作成したプログラムを、マウントしたディスクイメージにコピーし、SDカードにddで書き込むということも可能になるわけだ。
ddによるSDへの書き込みは下記のコマンドを実行。
ddコマンドでSDカードへ書き込み
sudo dd if=minibian.img of=/dev/sd[SDカード] bs=512 count=2097152
書き出しコマンドのifとofの値を入れ替えただけ。
これでネットワーク越しやUSBメモリをさしてファイルをコピーする必要もなくなるわけだ。
SDカードをPCに挿せば普通にマウントしてくれるからここまでする必要はないのだけども…。
まぁ遊びの一貫ということで。
今後
この状態だと、SDカードの一部だけが使用されることになり、局所的に寿命を早めてしまう。
仕方ないことではあるのだが、ちょっとでも寿命を伸ばすために、/tmpディレクトリや/var及び/var/logをRAM上に配置するようにしたい。
この設定をすると、電源を落とすたびにログファイルなどが消滅してしまうが、遊びで使っているので全く必要ない。
デバッグなどで残す必要がある場合にはその都度ROM領域にコピーするようにすればいいだろう。