Raspberry Pi のイメージを最小化する装置

【 2017/05/30 07:19 】by 月琴かりん

困った

  • 最近のRaspbianが起動時に勝手にディスク領域を最大まで拡大するので、大きめのSDカードを使うと、バックアップが超辛い。
    • macOSでお手軽に縮退してバックアップできたらいいが無理そう。
      • Linux使うのが手っ取り早いが、専用に用意、、VM、、うーん
        • そうだ、それ専用のRaspiつくろう!

CentOS on Raspberry Pi の構築

  • おおまかな話
  • イメージを焼く必要があるが、イメージがビミョいので、SDカードのフォーマットをしておかないと起動で事故る。
    • MS-DOS(FAT)/ GUIDパーティションマップ で初期化
  • yumの事故はエラー吐いた*.repo群のリンク切れを直してやる必要あり。お尻の /repodata/ が入ってるサイトがググるとちらほらあるが、いらないケースが多々。
    • http://qiita.com/Leonardo-mbc/items/2fb67a6f860aa33fd9bd
  • 自身のパーティションサイズを最大化しておく(前述のリンク参照)
  • ifcfgの設定がなんかへん?
    • http://qiita.com/tamamius/items/3af63f66ca81b165c319
    • イメージのままだとプロパティがDEVICEではなくnameになってるので死ぬ。直そう。
      • あと、HWADDR追加したり、NetworkManager-online-waiting追加したりとかする...
        • https://qa.atmarkit.co.jp/q/9628

MicroSD => USB 変換器 と parted での縮退 >> 縮退後のイメージで作業してて、再度拡張されてないなら、いきなり次のddコマンドフェーズいっていい。

  • 適当な変換器を用意しましょう。
    • /dev のどこかわからない時は、一回抜いて、/var/log/messages を tail -f しながら刺せばでてくる。
    • 多分、 /dev/sda で /dev/sda* がパーティションで認識されてるはず
  • resize2fs /dev/sda2 7G とかでpartedで丸めるサイズよりちょい小さめの値でresizeする
    • このコマンド、帰ってくるまでが長い...
  • parted 起動
    • select /dev/sda
    • unit s
    • print /dev/sda
      • 一番後ろの番号の開始セクタを控える
    • rm {一番後ろの番号}
    • mkpart primary ${控えておいた開始セクタ} 16000000s
      • 16000000s? => 大体8GBぐらい
  • e2fsck -f /dev/sda2
    • deviceではなく修正を加えたパーティションを対象とすることに注意
  • もっかい resize2fs /dev/sda2

CentOSの空き領域に DD して ファイルサーバに Upload

  • dd bs=512 if=/dev/sda of=/backup/hoge.img count=16000001 (上記で切り詰めたセクタの最大値+1を指定する

Resotre

  • dd bs=8096k if=/backup/hoge.img of=/dev/sda
    • なんかm指定だとエラーになる...

参考

misc

  • rdisk, disk の違いとは
    • アンバッファードモードとバッファモードの違い。ddでwriteする場合、理由がなければ前者使え。

所要時間

  • 8GB(上記パラメータ)にかかる時間
    • backup : 1034.12 sec = 17 min
    • restore : 875.212 sec = 15 min

GPIO操作

  • CentOSからでもGPIO操作できるので、常駐監視プロセスでDD状態をLEDとかで表示しておくと、視覚的に分かりやすいかも。
    • Centos on raspi で GPIO操作
      • http://yomon.hatenablog.com/entry/2016/05/29/120544
      • http://www.minkycute.homeip.net/pukiwiki/index.php?CentOSからI%2FOをアクセス
  • Unityと連携して云々したいんじゃぁ
    • [pigpio C#」でググるといい

Link Infomation

alomarron

サイト内検索