使用したバージョンは主にwary。(日米入り乱れ)
結構な容量を食う作業が多いのでHDDで作業するべし。余裕を見て1GBぐらいの空きスペースが欲しい。
(1) initrd.gzの解凍/展開
カレントディレクトリにあるinitrd.gzをworkディレクトリに展開する場合。
mkdir work
cd work
zcat ../initrd.gz | cpio -i -d
-- 実行log -----------------------
# pwd
/root/hoge
# ls
initrd.gz
# mkdir work
# cd work
# zcat ../initrd.gz | cpio -i -d
5353 blocks
# ls
bin etc mnt pup_ro1 pup_ro4 pup_ro7 pup_rw sbin var
dev init proc pup_ro2 pup_ro5 pup_ro8 pup_z sys
DISTRO_SPECS lib pup_new pup_ro3 pup_ro6 pup_ro9 README.txt tmp
#
---------------------
(2) initrd.gzの生成
カレントディレクトリ下のworkディレクトリ内のファイル及びディレクトリからnew_initrd.gzを生成する場合。
cd work
find . | cpio -o -H newc | gzip -9 > ../new_initrd.gz
-- 実行log ------------------------
# pwd
/root/hoge
# ls
work
# cd work
# find . | cpio -o -H newc | gzip -9 > ../new_initrd.gz
5353 blocks
# cd ..
# ls
new_initrd.gz work
#
--------------------------
(3) CDイメージファイル(.iso)の展開
ファイラから該当するアイコンをクリックすることでマウントされる。
(4) puppy用ブータブルCDイメージファイル(.iso)を作る
カレントディレクトリの下にあるworkディレクトリのファイル群からnew_image.isoを生成する場合。
(isolinux.bin と boot.catalogはバージョンによってファイル名が異なる)
mkisofs -o new_image.iso -l -b isolinux.bin -c boot.catalog -no-emul-boot -boot-load-size 4 -boot-info-table work/
-- 実行Log ------------------------------
# pwd
/initrd/mnt/dev_save/hoge
# ls
work
# ls work
boot.cat help2.msg initrd.gz isolinux.cfg lupu_525.sfs
boot.msg help.msg isolinux.bin logo.16 vmlinuz
# mkisofs -o new_image.iso -l -b isolinux.bin -c boot.catalog -no-emul-boot -boot-load-size 4 -boot-info-table work/
I: -input-charset not specified, using utf-8 (detected in locale settings)
Size of boot image is 4 sectors -> No emulation
---- 途中の表示内容は省略 ----
# ls
new_image.iso work
#
--------------------------------
普通にISOファイルだけ作る場合
mkisofs -r -J -o output_file.iso src_dir
-r RockRidge(linuxのロングファイル名用)
-J Joliet(Windowsのロングファイル名用)
-r と -J は同時使用可能('J'は大文字)
(5) sfsファイルの展開
ファイラから該当するアイコンをクリックすることでマウントされる。
ただし、使用中のもの、または使用中のものと同じファイル名のファイルはマウントされない場合がある。
「Sorry xxxx.sfs is already mounted and in-use by Puppy」こんな風に怒られる。
この場合はファイル名を変えて作業ディレクトリへコピーした後マウントする。
(6) マウントしたsfsからのコピー
マウントしたsfsから作業用のディレクトリにコピーするが、量が多い場合は、GUIツールよりもコマンドラインの方が速い。
下記のcpの-aは「元のファイルの構成と属性を保持する」のオプション
-- 実行Log ------------------------------
# mkdir ~/hoge/work
# pwd
/mnt/+root+hoge+org_wary_511.sfs
# ls
archive bin dev etc lib mnt opt proc root sbin tmp usr var
# cp -a * ~/hoge/work
# ls ~/hoge/work
archive bin dev etc lib mnt opt proc root sbin tmp usr var
#
--------------------------------
(7) sfsファイルを作る
~/hoge/workのディレクトリのファイル群を集めてカレントディレクトリにnew_wary_511.sfsを生成する場合。
mksquashfs ~/hoge/work new_wary_511.sfs -noappend
下記は展開したwary_511.sfsの内容から生成した場合の例。少々時間が掛かる。
-- 実行Log ------------------------------
# pwd
/mnt/home/hoge
# mksquashfs ~/hoge/work new_wary_511.sfs -noappend
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on new_wary_511.sfs, block size 131072.
[===========================================================|] 10701/10701 100%
Exportable Squashfs 4.0 filesystem, data block size 131072
---- 途中の表示内容は省略 ----
# pwd
/initrd/mnt/dev_save/hoge
# ls
new_wary_511.sfs
#
---------------------