読者です 読者をやめる 読者になる 読者になる

KNOPPIX6.0をUSBメモリへインストール

tech

必要なもの

インストールスクリプト

以下のスクリプトをinstall.shとして保存。
KNOPPIX6でもKNOPPIX5.3.1でもこのスクリプトでインストールできます。多分5.1.1でもインストールできるはず。(未確認)
KNOPPIX5.3.1にはknx2hdが、KNOPPIX6.0にはflash-knoppixがあるけどそれを使わずに作りました。
一応HDD等にはインストールしないようにチェックかけてるけど、自己責任でお願いします。

#!/bin/bash

#check device
if [ -n "$1" ]
then
  DEVICE="$1"
  NAME=$(basename $1)

  df | grep $DEVICE >/dev/null 2>&1
  if [ $? -eq 0 ]
  then
    echo "$DEVICE is mounted"
    exit 1
  fi

  if [ ! -e /sys/block/$NAME ]
  then
    echo "not found $DEVICE"
    exit 1
  fi

  if [ "$(cat /sys/block/$NAME/removable)" -ne 1 ]
  then
    echo "$DEVICE is not usb storage"
    exit 1
  fi
else
  echo "Usage : $0 /dev/sdX"
  exit 1
fi

#format device
sfdisk -uS $DEVICE <<EOF
32,,b,*
EOF
mkdosfs -F 32 ${DEVICE}1

#install boot loader
dd if=/usr/lib/syslinux/mbr.bin of=$DEVICE
syslinux ${DEVICE}1

#install KNOPPIX image
if [ -d /mnt-system ]
then
  #for knoppix6.0
  IMAGE_DIR="/mnt-system"
elif [ -d /cdrom ]
then
  #for before knoppix5.3.1
  IMAGE_DIR="/cdrom"
else
  echo "not found knoppix image dir"
  exit 1
fi
mkdir -p /tmp/install
mount -t vfat ${DEVICE}1 /tmp/install
cp -av $IMAGE_DIR/KNOPPIX/ /tmp/install/
cp -av $IMAGE_DIR/boot/isolinux/* /tmp/install/
mv /tmp/install/isolinux.cfg /tmp/install/syslinux.cfg
umount /tmp/install

インストール開始

KNOPPIXを起動して以下のように実行。
引数のデバイスはUSBメモリに合わせて適宜変更。

sudo su
chmod +x install.sh
./install.sh /dev/sdX

原因不明な問題

以下のようにインストールすると、ブートローダが起動しなかったりカーネルパニックになったりします。

  • 5.3.1をインストールした後に6.0をインストールする(逆も同じく)

調べてみるとインストール後のカーネルやminirt.gzのsha1がコピー元とコピー先で異なります。もう一度インストールしなおすと正常にコピーできる。謎現象。
何か知ってる人いましたら教えてもらえると助かります。