上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ubuntuのinitramfsにfileコマンドを組み込む

ファイルの種類を調べるのに便利なコマンドとしてfileコマンドがある。

Ubuntu 10.04、カーネル2.6.32-24-generic
でinitramfsでfileコマンドを使えるようにする方法を、
失敗しながら、エラーメッセージを頼りに、試行錯誤して、
遂に以下の方法で組み込むことができました。

端末で
~$ mkdir init
~$ cd init
~/init$ gzip -dc /boot/initrd.img-$(uname -r) | cpio -i
~/init$ cp /usr/bin/file bin/
~/init$ cp -p -L /usr/lib/libmagic.so.1 lib/
~/init$ cp -p -L /lib/libz.so.1 lib/
~/init$ cp -p /usr/share/file/magic etc/

以上で、~/init以下にinitramfsにするべきものが出来上がっているので、initramfsにします。

~/init$ find .|cpio -H newc -o|gzip -9 > ../initrd.img

これで、fileコマンドのつかえるinitramfsが~/initrd.imgとして出来上がっています。
実際に起動してfileを使ってみると、エラーが発生しますが、結果が表示されます。

2010/8/24追記:

上記だけだと、fileコマンド実行時に、
/etc/magic; Warning ・・・ using regular file '/usr/share/misc/magic'
なんてエラーメッセージが表示されていました。
そこで、
端末で
~$ mkdir init
~$ cd init
~/init$ gzip -dc /boot/initrd.img-$(uname -r) | cpio -i
~/init$ cp /usr/bin/file bin/
~/init$ cp -p -L /usr/lib/libmagic.so.1 lib/
~/init$ cp -p -L /lib/libz.so.1 lib/
~/init$ cp -p /usr/share/file/magic* etc/
~/init$ mkdir usr/share/misc -p
~/init$ ln -s misc usr/share/file
~/init$ ln -s ../../../etc/magic usr/share/misc/magic
~/init$ ln -s ../../../etc/magic.mgc usr/share/misc/magic.mgc
~/init$ ln -s ../../../etc/magic.mime usr/share/misc/magic.mime

以上で、~/init以下にinitramfsにするべきものが出来上がっているので、initramfsにします。

~/init$ find .|cpio -H newc -o|gzip -9 > ../initrd.img

これで、fileコマンドをエラーを出さずに使うことができるinitramfsが~/initrd.imgとして出来上がっています。
関連記事

テーマ : Linux
ジャンル : コンピュータ

コメントの投稿

管理者にだけ表示を許可する

プロフィール

kiyoshi

Author:kiyoshi
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
since 2011/9/25
現在の閲覧者数:
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。