
Ubuntu日本語フォーラム

ログインしていません。
.sqlzma 拡張子の付いたファイルを開いて
中身を見たいのですが、どのようにして開いた
らよいのでしょうか?
ご教授宜しくお願い致します。
オフライン
どうも検索して調べてみると、squashfs-lzma という圧縮ファイルシステムの仮想ドライブファイルみたいです。たとえば VMWare でいえば、vmdk の拡張子を持つ仮想ドライブファイルに相当するようです。
squashfs-lzma をインストールして、システムに mount するれば中身が見れるかもしれません。
どうも squashfs-lzma 以前に squashfs というファイルシステムもあるらしく、squashfs については参考になるページがありました。squashfs の圧縮形式は zlib だそうですが、squashfs-lzma の圧縮形式は圧縮率の高い 7zip を使用しているそうです。
詳細はわかりかねますが、squashfs-lzma をインストールして、squashfs と同様の手順で任意のマウントポイントをつくり mount してやれば、中身が見れるんじゃないでしょうか。
# ただし詳細は分かりかねますので、自己責任でお願いします。
# でも初心者向きの内容じゃないような気がします。
最後の編集者: avidya (2008-09-12 09:46:20)
気になったのでもう一度 squashfs-lzma のサイトを見てきました。
avidya による投稿:
# でも初心者向きの内容じゃないような気がします。
気がしますどころか、ぜんぜん初心者向けじゃないです。カーネルにパッチを当てて、ビルドとインストールも必要です!!
avidya による投稿:
気がしますどころか、ぜんぜん初心者向けじゃないです。カーネルにパッチを当てて、ビルドとインストールも必要です!!
と書きましたが リポジトリに登録されている squashfs に、すでに squashfs-lzma のパッチが当たっているようです。ということはカーネルもパッチが当たっているはずですから、gparted でパーティションとして認識されてませんか?
例えば私は LVM を導入しているんですが、LVM ドライブは gperted で /dev/mapper/home-home などと認識されています。ちなみに /dev/mapper/home-home の正体は /dev/sda3 だったりします。
デバイスファイルは /dev/home/home ですが。
最後の編集者: avidya (2008-09-12 10:53:22)
avidya 樣
ご教示有難う御座います。
具体的なマウント方法はどのようにするのでしょうか?試しに
sudo mount -t squashfs -o loop name.sqlzma /mnt
とすると、端末上に
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
と表示され、マウント出来ません。また demsg の内容は下記のようになっていました。
[ 247.420000] loop: loaded (max 8 devices)
[ 247.600000] squashfs: version 3.2-r2 (2007/01/15) Phillip Lougher
[ 247.616000] SQUASHFS error: Can't find a SQUASHFS superblock on loop0
[ 273.728000] cramfs: wrong magic
[ 273.732000] VFS: Can't find ext3 filesystem on dev loop0.
[ 273.780000] NTFS-fs warning (device loop0): is_boot_sector_ntfs(): Inva
lid boot sector checksum.
[ 273.780000] NTFS-fs error (device loop0): read_ntfs_boot_sector(): Prim
ary boot sector is invalid.
[ 273.780000] NTFS-fs error (device loop0): read_ntfs_boot_sector(): Moun
t option errors=recover not used. Aborting without trying to recover.
[ 273.780000] NTFS-fs error (device loop0): ntfs_fill_super(): Not an NTF
S volume.
[ 273.780000] SQUASHFS error: Can't find a SQUASHFS superblock on loop0
[ 2752.456000] SQUASHFS error: Can't find a SQUASHFS superblock on loop0
[ 3015.592000] SQUASHFS error: Can't find a SQUASHFS superblock on loop0
[ 3448.544000] SQUASHFS error: Can't find a SQUASHFS superblock on loop0
(END)
オフライン
squashfs というファイルシステムについて、まったく知らないので、最後までお手伝いできる自信はないのですが、努力してみます。
まず name.sqlzma はもともと、どういうわけか ubuntu_novice さんのマシンに入っていた、という想定で話を進めてみますね。
取り合えず最初に Gparted で sda* とか sdb* とか以外のデバイスがあるかどうか確認してください。
もし無いようであれば /etc/fstab の内容を張り付けていただけますか?
ubuntu_noviceさん による投稿:
sudo mount -t squashfs -o loop name.sqlzma /mnt
とすると、端末上に
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
と表示され、マウント出来ません。また demsg の内容は下記のようになっていました。
squashfs は Synaptic からインストールされましたか?もしインストールされていなければ squashfs というファイルシステムタイプは mount コマンドに認識されないはずです。
ubuntu は外付けのUSBハードディスクにインストールしています。
(/dev/sdb1 --> /boot;/dev/sdb2 --> /;/dev/sdb3 --> SWAP)
内蔵ハードディスクはシリアルATAなので、sda* と認識されています。
/etc/fstab の内容は下記のようになっています。
name.sqlzma ファイルはCDから複写したものです。
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
# /dev/sdb2
UUID=7e2fa2b4-0d2f-4a06-bc29-ed6cf42ca36c / ext3 defaults,errors=remount-ro 0 1
# /dev/sdb1
UUID=a7bf0e31-ca97-4240-bf9c-221a2be42e71 /boot ext3 defaults 0 2
# /dev/sda1
UUID=169CC8939CC86F35 /media/sda1 ntfs defaults,nls=utf8,umask=007,gid=46 0 1
# /dev/sda5
UUID=ca546791-cdb5-4a4a-9fb4-25accad62066 /media/sda5 ext3 defaults 0 2
# /dev/sda6
UUID=b9633f00-ebe1-48f1-905c-b42d09225a8d /media/sda6 ext3 defaults 0 2
# /dev/sda8
UUID=4b8edbe4-8bc9-44b6-93ba-2bbcdab3ada2 /media/sda8 ext3 defaults 0 2
# /dev/sda9
UUID=88d55219-b332-469c-82b4-82a236e87b2d /media/sda9 ext3 defaults 0 2
# /dev/sda10
UUID=a798fec9-f016-4203-80a7-8536fe974b7d none swap sw 0 0
# /dev/sda3
UUID=8eecabf9-f3c3-40bb-b75f-411f67abdb85 none swap sw 0 0
# /dev/sda7
UUID=57cd0bcf-4e6e-4445-948c-52359daa0a04 none swap sw 0 0
# /dev/sdb3
UUID=0914cd7f-8ce4-435b-a59f-7ecb0c2605fe none swap sw 0 0
/dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0
オフライン
synaptic で squashfs をインストールしよう探しても、見付かりません。
squashfs-tools と lzma はインストールしています。
オフライン
ubuntu_noviceさん による投稿:
name.sqlzma ファイルはCDから複写したものです。
なるほど、name.sqlzma ファイルのマウントの指定は fstab には見当たらないのは当然ですね。
そうしたら次の手順を行ってもらえますか?
1.name.sqlzama ファイルが入っていた CD を挿入
2.nautilus で CD 内の nama.salzma ファイルがあるディレクトリを表示する。
3.ホームディレクトリに mnt というディレクトリを作成する。
4.Nautilus で場所を表示する。
5."sudo mount -t squashfs -o loop "Nautilus で表示された場所/name.sqlzama" ./mnt" をホームディレクトリで実行する。
6.~/mnt の中身を見る
おそらくこれでいけると思うんですが。つまり CD 内の name.sqlzama ファイルの中身を直接見る方法です。ちなみに Ubuntu の LiveCD の中身をこれで見ることができました。一番参考になったサイトはここです。なんでも EcoLinux の作者さんによるサポートスレへの書き込みの抜粋だそうです。
name.sqlzama ファイルの中身を見るには、name.sqlzama ファイルだけでなく、manifest、manifest-desktop などの拡張子を持ったファイルもなければならないようです。ひょっとすると他のファイルも必要かもしれません。
# ところで My LiveCD とか My LiveUSB でも作るんですか?
# sqashfs ファイルシステムの中身を見たいなんて?
# sqashfs で検索したらそんなのばかりでてきましたけど (*⌒∇⌒*)
最後の編集者: avidya (2008-09-13 15:59:23)
ubuntu_novice による投稿:
synaptic で squashfs をインストールしよう探しても、見付かりません。
squashfs-tools と lzma はインストールしています。
squashfs-tools をインストールしてください。ひょっとすると必要ないかもしれないのですが。
squashfs-tools はインストール済です。
当方でも、Ubuntu の LiveCD の中身が見えるかどうか、isoファイルをダウンロードして
試してみましたが、マウントが出来ず、中身を見ることはできませんでした。
ecolinux ではどうか ecolinux-light-8.04.iso をダウンロードして、同じことを
やってみましたが、結果は同じでした。
avidya 樣では成功し、当方では失敗するのは、どこが違っているのでしょうか?
試みた手順は下記の通りです。
sudo mount -t iso9660 -o loop Desktop/ubuntu-ja-8.04.1-desktop-i386.iso /mnt
mkdir ubuntu-livecd
cp -a /mnt/. ubuntu-livecd
chmod -R u+x ubuntu-livecd
rm -rf ./ubuntu-livecd/programs
mkdir ./old
sudo mount -t squashfs -o loop,ro ./ubuntu-livecd/casper/filesystem.squashfs ./old
ここで下記の伝言が、画面に出てマウントが出来ない。
mount: wrong fs type, bad option, bad superblock on /dev/loop1,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
オフライン
ubuntu_noviceさん による投稿:
avidya 樣では成功し、当方では失敗するのは、どこが違っているのでしょうか?
一番の違いは、私は CD の中身を直接見たことで、ubuntu_novice さんの場合は iso ファイルをマウントして、さらに別のディレクトリにコピーしてからその中の squashfs をマウントして中身を見たということですね。
それでわたしも ubuntu_novice さんと似た手順でやってみました。
sudo mount -t iso9660 -o loop Desktop/ubuntu-ja-8.04.1-desktop-i386.iso /mnt
ここでまず、/mnt ディレクトリの中身が CD と同じか確認しました。
mkdir ubuntu-livecd cp -a /mnt/. ubuntu-livecd chmod -R u+x ubuntu-livecd
ここままったく同じオペレーションをしました。そして念のため ubuntu-livecd に CD の内容がコピーされているか確認しました。
rm -rf ./ubuntu-livecd/programs
これは programs というディレクトリもファイルも見つからなかったので実行しませんでした。
mkdir ./old sudo mount -t squashfs -o loop,ro ./ubuntu-livecd/casper/filesystem.squashfs ./old
ここは自分のホームディレクトリで作業していたので、以下のようにコマンドラインを変えました。
mkdir old sudo mount -t squashfs -o loop,ro ubuntu-livecd/casper/filesystem.squashfs old
この状態で old に移動して squashfs ファイルの中身が確認できました。
作業ディレクトリを間違えているというケアレスミスはありませんか?
検証いただきまして有難う御座います。
今まで使用していた ubuntu の版は少し古い 7.04 でした。そこで新しい 8.04 を
インストールし直して、再度、試してみると、ubuntu-ja-8.04.1-desktop-i386.iso あるいは
ecolinux-light-8.04.iso の中にある filesystem.squashfs をマウントして、中身を
見ることが出来るようになりました。
しかし、拡張子.squashfs が付いたファイルは、ご教授の方法で開くことが出来るようになった
のですが、目的とする、拡張子.sqlzma が付いたファイルは、ご教授の方法では、下記のような
伝言が端末に現れて、マウントができず、ファイルを開くことができません。
mount: wrong fs type, bad option, bad superblock on /dev/loop1,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
オフライン
mount: wrong fs type, bad option, bad superblock on /dev/loop1,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so これは単純に mount コマンドのエラーメッセージみたいですね。
ファイルシステムタイプが間違ってる、と言っているようです。"-t squashfs" はダメみたいですね。以下の二つのことをお願いできますか?
1.dmesg | tail の結果の貼り付け
2.losetup /dev/loop1 の結果の貼り付け
あともしよろしければ、該当の CD の iso イメージをダウンロードできるようにしていただけませんか?ダウンロード URL は私のメールフォームから送っていただければ結構です。
最後の編集者: avidya (2008-09-14 10:09:00)
すいません。上記 #15 の前に、最後のマウント手順で以下のマウント方法を試していただけませんか?
sudo mount -o loop,ro "name.sqlzma の相対パス" old
最後の編集者: avidya (2008-09-14 10:26:21)
sudo mount -t squashfs -o loop,ro ./ubuntu-livecd/images/name.sqlzma old の実行でも
sudo mount -o loop,ro ./ubuntu-livecd/images/name.sqlzma old の実行でも、
dmesg | tail の結果が少し異なるだけで、ほぼ同じ結果でした。
1、端末に現れる伝言(両者同じ)
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
2、dmesg | tail の結果(-t squashfs 有りの場合)
[ 9630.616824] UDF-fs: No VRS found
[ 9630.673395] ISO 9660 Extensions: Microsoft Joliet Level 3
[ 9630.675999] ISO 9660 Extensions: RRIP_1991A
[12067.318913] UDF-fs: No VRS found
[12067.389224] ISO 9660 Extensions: Microsoft Joliet Level 3
[12067.391801] ISO 9660 Extensions: RRIP_1991A
[ 9910.482191] UDF-fs: No VRS found
[ 9910.603372] ISO 9660 Extensions: RRIP_1991A
[22273.108058] SQUASHFS error: Can't find a SQUASHFS superblock on loop0
[22632.506434] SQUASHFS error: Can't find a SQUASHFS superblock on loop0
3、dmesg | tail の結果(-t squashfs 無しの場合)
[ 3339.662239] ISO 9660 Extensions: RRIP_1991A
[ 9630.616824] UDF-fs: No VRS found
[ 9630.673395] ISO 9660 Extensions: Microsoft Joliet Level 3
[ 9630.675999] ISO 9660 Extensions: RRIP_1991A
[12067.318913] UDF-fs: No VRS found
[12067.389224] ISO 9660 Extensions: Microsoft Joliet Level 3
[12067.391801] ISO 9660 Extensions: RRIP_1991A
[ 9910.482191] UDF-fs: No VRS found
[ 9910.603372] ISO 9660 Extensions: RRIP_1991A
[22273.108058] SQUASHFS error: Can't find a SQUASHFS superblock on loop0
4、losetup /dev/loop1(両者同じ)
loop: デバイス /dev/loop1 をオープンできません: Permission denied
5、.sqlzmaファイルの入手先
日経Linux の2008年10月号の付録の DVD-ROM の images の中に root.sqlzmaという
名前で入っています。また
< https://service.turbolinux.co.jp/tech/form/download_tlc2008-live-edition.php?ftp.nuie.nagoya-u.ac.jp/pub/Linux/TurboLinux/ >
からダウンロードすることも出来ます。
オフライン
こちらでも同じエラーが出ました。
やはり mount コマンドがファイルシステムタイプを認識できていないようです。
結論から言いますと Ubuntsu の場合、Kernel の再構築がやはり必要です。
ひょっとしたら VMWare Pleyer の環境上に Turbolinux 環境をつくれば見ることができるかもしれません。
あともう一つは別の HDD を用意して Ubuntu 8.04 Hardy Heron をインストールし、そちらのカーネルを再構築すれば Ubuntu でも見ることができるかもしれません。
とりあえず、前者から試してみますので、しばらくお待ちいただけますか?
とりあえず中間報告です。
MVWare Player で直接 MC-2008080114.iso ファイルをマウントして起動したところ、当然のごとく LiveCD の Turbolinux が起動してしまい、root.sqlzma の中身を見るのには失敗。
また vmdk 仮想デバイスファイルに Turbolinux をインストールしようとして、デバイスエラーのため失敗。
これから iso ファイルを CD に焼いて、LiveCD から iso ファイルをマウントする方法を実施します。
作業経過報告。
LiveCD からの起動にて Ubuntu がインストールされている STAT 接続の HDD の認識ができないことがすぐに判明。
外付け USB HDD に Ubuntu 8.04 をインストールしたものの、Boot CD の作成に失敗してこれからやり直し。外付け USB HDD にてカーネルのコンパイルに挑戦予定。
おそらく今日は USB HDD に Ubuntu 8.04.1 をインストールして、Boot CD 作成までが限界と思われる。
すみません、ubuntu_novice さん。昨夜一晩かけて kernel へのパッチの当て方を調べていたのですが、結局わかりませんでした orz
今日はそれでは、と TurboLinux をインストールして kernel のパッチを当てようとしたのですが ( Turbo にもリポジトリみたいなものがある )、パッケージが壊れているらしく、何度やっても無情にもエラーとなり、結局 root.sqlzma のマウントができませんでした。
申し訳ないのですが、他の偉人に委ねたいと思います。
お役に立てずすみませんでした。
# それとも SLAX で試してみようか、ってそこまでの気力、体力が今はないよ >x<。
# 眠いし、意識が朦朧としてるよ〜 =x=。
最後の編集者: avidya (2008-09-16 11:08:13)
先に結論を書きます。SLAX というオンメモリ・ディストリビューションの力を借りて root.sqlzma の中身を見ることができました。
手順を概説します。前提としてローカルにインストールされている ubuntu_novice さんのホームディレクトリに、すでに MC-2008080114.iso がダウンロードされているものとします。
1.SLAX の CD 用 iso イメージをダウンロードし、CD-R に焼く
2.SLAX を CD boot する
ユーザは root しか存在しないようです ( 間違ってるかもしれませんが )。
3.ブラウザを起動し、ローカル HDD がマウントされていることを確かめる
/mnt/sd* にマウントされます。
4.ターミナルを起動する
5."mkdir iso"、"mkdir root" を実行しておく
6.mount -t iso9660 -o loop,ro /mnt/sda*/home/ubuntu_novice/MC-2008080114.iso iso を実行する
念のためディレクトリ iso に入って、ls コマンドでファイル等が見れるか確認してください。
7.mount -t squashfs -o loop,ro iso/images/root.sqlzma root を実行する
8.root ディレクトリに移動して ls コマンドで root.sqlzma ファイルの中身を確認する
# なお SLAX は英語しか対応していませんので ( キーボードレイアウトは Japan 106 に変更できます )
# ディレクトリ名に日本語を使っている場合等は当たりをつけて MC-2008080114.iso があるディレクトリを
# 見つけてください。
# また SLAX はデスクトップ環境に KDE を使っているので、ファイルブラウザは Webブラウザと兼用に
# なってます。
最後の編集者: avidya (2008-09-16 11:06:54)
avidya 様
.sqlzma 拡張子の付いたファイルの開き方について、昼夜ご尽力いただき有難う御座います。
お蔭様で、.sqlzma 拡張子の付いたファイルを、ご教授いただいた方法で開くことが出来ました。
有難う御座いました。
オフライン
Ubuntu でsqlzma拡張子のファイルを扱えるようにする方法。
Ubuntuのソースパッケージではmoduleのロードに失敗しますので、#2のリンク先を参考にしました。
sudo apt-get install linux-source-2.6.24 build-essential
cd /usr/src/
sudo tar jxvf linux-source-2.6.24.tar.bz2
cd ~
mkdir squashfs
cd squashfs
wget http://www.squashfs-lzma.org/dl/squashfs3.3.tar.gz http://www.squashfs-lzma.org/dl/lzma457.tar.bz2 http://www.squashfs-lzma.org/dl/sqlzma3.3-457-2.tar.bz2
tar jxvf sqlzma3.3-457-2.tar.bz2
cp Makefile Makefile.orig
vi Makefile
-------------4行変更して保存--------------
#LzmaVer = lzma449
LzmaVer = lzma457
#SqFs = ${Squashfs}/kernel-patches/${KVer}/fs/squashfs
SqFs = /usr/src/linux-source-2.6.24/fs/squashfs
-------------------------------------------------
mkdir lzma457
tar jxvf lzma457.tar.bz2 -C lzma457/
tar zxvf squashfs3.3.tar.gz
cd lzma457
patch -p1 <../sqlzma1-449.patch
cd /usr/src/linux-source-2.6.24
sudo patch -p1 <~/squashfs/squashfs3.3/kernel-patches/linux-2.6.24/squashfs3.3-patch
sudo patch -p1 <~/squashfs/sqlzma2k-3.3.patch
make oldconfig
;;;;; 新しい項目で入力待ちになりますので、SquashFS 3.3の所でmを設定。他はenter;;;;;
cd ~/squashfs
make
;;;;;出来たsquashfs.ko, unlzma.ko , sqlzma.koを/lib/module/2.6.24-generic/kernel/fs/squashfs/にコピー。元のsquashfs.koはバックアップして、削除。;;;;;
sudo depmod -aオフライン