業務日誌 USB メモリ上の Debian のプログラムを chroot で直接動かす.その2

この記事を読むのに掛かる時間: 4

処理を分けた方が使いやすいらしい.
一応 Debian アプリケーションはだいたい動く.ものすごく強引に(–;;
boot をマウントしなくなったのは,apt-get update とか動かさない前提に変更した為.
ブートローダーインストールしてもマップファイルが違うとか言われて起動しないので,アップデートする時は別マシンに USB メモリ差し替えてネイティブで起動すれば良いかな,と.

#! /bin/bash

BASE_DIR='/mnt'
DEB_ROOT="${BASE_DIR}/debian"

start(){
  (
  cd "${BASE_DIR}"
  if ! mountpoint -q "${DEB_ROOT}" ; then
    sudo mount "${DEB_ROOT}" || { echo "can not mount ${DEB_ROOT}"; exit 1; }
  fi
  if ! mountpoint -q "${DEB_ROOT}/proc" ; then
    sudo mount -t proc proc "${DEB_ROOT}/proc" || { echo "can not mount ${DEB_ROOT}/proc"; exit 1; }
  fi
  if ! mountpoint -q "${DEB_ROOT}/dev" ; then
    sudo mount -o bind /dev "${DEB_ROOT}/dev" || { echo "can not mount ${DEB_ROOT}/dev"; exit 1; }
  fi
  if ! mountpoint -q "${DEB_ROOT}/tmp" ; then
    sudo mount -o bind /tmp "${DEB_ROOT}/tmp" || { echo "can not mount ${DEB_ROOT}/tmp"; exit 1; }
  fi
  if ! mountpoint -q "${DEB_ROOT}/home/rock/_cifs" ; then
    sudo mount -o bind /home/rock "${DEB_ROOT}/home/rock/_cifs" || { echo "can not mount ${DEB_ROOT}/home/rock/_cifs"; exit 1; }
  fi
  )&& echo "ok, you can chroot type that: $0 chroot"
}

chroot(){
  (
  cd "${BASE_DIR}"
  echo 'install .Xauthority to Debian home' &&
  cp /home/rock/.Xauthority debian/home/rock/ &&
  sudo chroot debian /bin/su rock
  )
}

stop(){
  (
  cd "${BASE_DIR}"
  sync
  sudo killall dbus-launch
  sudo umount "${DEB_ROOT}/home/rock/_cifs"
  sudo umount "${DEB_ROOT}/tmp"
  sudo umount "${DEB_ROOT}/dev"
  sudo umount "${DEB_ROOT}/proc"
  sudo umount "${DEB_ROOT}"
  )&& echo 'done.'
}

help(){
  echo "ex: $0 start|chroot|stop"
}

case $1 in
  start | mount) start ;;
  chroot )       chroot ;;
  stop | umount)  stop ;;
  * )             help ;;
esac

で,親の端末で kinput2 動かしてても,chroot したらそこから起動した iceweasel とかに日本語入力出来ない.
ファイルだけでなく,プロセス単位で環境が jail しちゃうらしい(?).よく出来てんなあ.

スポンサーリンク
336×280
336×280

書いた人

me 小津雪ヲ: 生きるとゆう事は,雑多な問題に対処するとゆう事.
ライフハック,DIY,木工,鉄工,ソルトルアー,ロードバイク,オートバイ,家庭菜園,自給自足,料理,Linux,ガジェット,写真,フラメンコギターなど.
日常の様々な創意工夫やお役立ち情報を発信しています.

記事のシェア,ツイッターフォロー,ブックマーク,RSS登録 お願いします.
あとランキングも押して頂けると助かりますm(__)m

ブログランキング・にほんブログ村へ blogranking
blogranking

シェアする

フォローする

スポンサーリンク
336×280