Fork me on GitHub

Ubuntu ライブusbメモリのsquashfsを変更する

  • Jan 15, 2009

categoryプラグインは存在しません。

環境

概要

Ubuntu 8.10ではUSBメモリにライブCDをインストールする機能がありますが、パッケージ等の追加を行うと、すぐに書き込み領域がいっぱいになってしまいます。

そこで、書き込み領域の一部をsquashfsに移動することで、領域を確保し直す方法です。

新規作成手順

差分用のsquashfsをまだ作っていない時はこんな感じで作業します。

  • USBメモリにUbuntu 8.10をインストール
    • 作業領域はめいっぱいとらず、空き領域を残しておくこと
  • USBメモリからUbuntuを起動して、パッケージのインストールなどを行う
  • 不要なファイルを削除しておく
  • </ul>
    sudo aptitude clean
    
    • USBメモリから persistent オプションを削除してUbuntuを再起動
    • squashfsファイルを作成
    sudo aptitude update
    sudo aptitude install squashfs-tools
    sudo mount /cdrom -o remount,rw
    sudo mount -t ext3 -o loop /cdrom/casper-rw /mnt
    sudo mksquashfs /mnt /cdrom/casper/update.squashfs -info -noappend -wildcards -e .wh* cdrom etc home lost+found media rofs root tmp* var/backups var/cache var/crash var/log var/run var/spool var/tmp
    

    フォルダ名の複数指定だとどうもエラーになってしまうので、excludesを指定します。

    • 書き込み領域の整理
    cd /mnt
    sudo rm -rf bin sbin usr lib var/lib
    cd /
    sudo sync
    sudo umount /mnt
    
    • USBメモリから通常通りUbuntuを起動する

    ファイルの追加手順

    既にupdate.squashfsがある場合、追加はちょっとややこしくなります。

    • USBメモリから persistent オプションを削除してUbuntuを再起動
    • 必要ツールをinstall
    sudo aptitude update
    sudo aptitude install squashfs-tools aufs-tools
    
    • USBメモリを書き込み可にする
    sudo mount /cdrom -o remount,rw
    
    • 前のsquashfsをくっつけて、新しいsquashfsを作る
    sudo mkdir /tmpsqfs /tmprwfs
    sudo mount -t squashfs -o loop /cdrom/casper/update.squashfs /tmpsqfs
    sudo mount -t ext3 -o loop /cdrom/casper-rw /tmprwfs
    sudo mount -t aufs -o br:/tmprwfs=ro:/tmpsqfs=ro none /mnt
    sudo mksquashfs /mnt /cdrom/casper/update-new.squashfs -info -noappend -wildcards -e .wh* cdrom etc home lost+found media rofs root tmp* var/backups var/cache var/crash var/log var/run var/spool var/tmp
    cd /cdrom/casper
    sudo umount /mnt
    sudo mv update.squashfs update.squashfs.old
    sudo mv update-new.squashfs update.squashfs
    
    • 書き込み領域の整理
    cd /tmprwfs
    sudo rm -rf sbin usr lib var/lib
    cd /
    sudo sync
    sudo umount /tmprwfs
    
    • USBメモリから通常通りUbuntuを起動する

    備考

    • squashfsを作るのはpersistentオプションなし環境のほうがいいらしい。
      • 毎回installが必要なのは面倒ですが。
    • umountの前にsyncをしたほうがトラブルは少なかった。
    • 起動できなくなったら以下のファイルを削除する。
    • </ul>
      /cdrom/casper-rw
      /cdrom/casper/update.squashfs
      

      自動スクリプト