玩式草子─ソフトウェアとたわむれる日々

第93回 xorrisoとUEFIブート再び[その3]

この記事を読むのに必要な時間:およそ 6 分

前回までにxorrisoのさまざまな機能を紹介してきました。紹介したのはxorrisoの機能のごく一部にすぎないものの,xorrisoの実力とISO9660ファイルシステムの持つ可能性を感じていただけたと思います。

xorrisoはこのように強力なソフトウェアなものの,機能が豊富すぎて(その結果ドキュメントも長大で)⁠初心者が手を出すにはやや敷居が高くなっています。

また,オプションの指定方法や意味等がLinuxでCD/DVDを作成する際のデファクト・スタンダートと言えるmkisofsやcdrecordと大きく異なってることも,xorrisoが敬遠される一因でしょう。

作者もそのあたりは気になったようで,xorrisoにはmkisofs/cdrecordとほぼ同じオプションが使えるエミュレーション機能が用意されています。今回はこのエミューレション機能と筆者がxorrisoを使うきっかけとなったBIOS/UEFIデュアルブートの話題を紹介しましょう。

xorrisoのエミュレーション機能

xorrisoには-as <personality>という指定で,<personality>に指定したコマンドをエミュレートする機能があります。<personality>にはmkisofscdrecordが指定でき,"mkisofs"を指定するとmkisofsのオプション体系が,"cdrecord"を指定するとcdrecordのオプション体系が,それぞれ利用可能になります。

その他の<personality>としてxorrisofs, genisoimage, genisofsも指定できるものの,これらはmkisofsと同じ意味になります。

xorrisoのmanページからこの機能を紹介した部分を引いてみましょう。参考のために私訳も付しておきます。

Command compatibility emulations:

     Writing of ISO 9660 on CD is traditionally done by program  mkisofs  as
     ISO 9660 image producer and cdrecord as burn program.  xorriso does not
     strive for their comprehensive emulation.  Nevertheless it is ready  to
     perform  some of its core tasks under control of commands which in said
     programs trigger comparable actions.

     -as personality option [options] --
            Perform the variable length option list as sparse  emulation  of
            the program depicted by the personality word.
互換コマンド用エミュレーション

CDにISO9660を書き込むには,従来,ISO9660イメージ作成用のmkisofsと書き込み用のcdrecordが使われてきた。xorrisoは,それらコマンドを包括的にエミュレーションするわけではないが,主要な機能に関しては,それらコマンドが使用するオプションと共に利用可能になっている。

-as personality option [options] --

personalityとして指定したプログラムに,可変長のリストとして指定されたオプションを与えた際の処理をおおまかに模倣する。

すなわち,"xorriso -as mkisofs"とすると,mkisofsと同じオプションが使えるというわけです。指定可能なオプションは"-help"で一覧することができます。

$ xorriso -as mkisofs -help
  Usage: xorriso -as mkisofs [options] file...
  Note: This is not mkisofs. See xorriso -help, xorriso -version, man xorrisofs
  Options:
    -f, -follow-links           Follow symbolic links
    -graft-points               Allow to use graft points for filenames
    -help                       Print option help
    -hfsplus                    Generate HFS+ filesystem
    -hfsplus-file-creator-type CREATOR TYPE iso_rr_path
                                Attach creator and type to a File
...

この結果を"mkisofs -help"で表示されるmkisofsのオプション一覧と比較してみると,manページでsparse emulationと称しているとおり,両者はおおまかにしか重なりません。しかし,RockRidge形式を使うための"-R",Joliet形式を使うための"-J",出力先を指定する"-o",ボリュームIDを指定する"-V",起動処理回りの"-no-mul-boot","-eltorito-alt-boot"等,よく使う重要なオプションはカバーされており,普通に使う範囲では問題なさそうです。

事実,以前mkisofsを取り上げた回で紹介した実行例は"xorriso -as mkisofs ..."で対応できました。

この"-as <personality>"には,<personality>のコマンド名でxorrisoを起動すると自動的に有効になるというショートカットも用意されています。すなわち,mkisofsという名前でxorrisoへのシンボリックリンクを張り,xorrisoをmkisofsという名前で起動すると,自動的に"-as mkisofs"オプションが指定されたことになるわけです。

エミュレーション機能でもうひとつ重要なpersonalityがcdrecordです。

$ xorriso -as cdrecord -help
GNU xorriso 1.4.6 : RockRidge filesystem manipulator, libburnia project.

Usage: xorriso -as cdrecord [options|source_addresses]
Note: This is not cdrecord. See xorriso -help, xorriso -version, man xorrecord
Options:
        -version        print version information and exit emulation
        --devices       print list of available MMC drives and exit emulation
        dev=target      pseudo-SCSI target to use as CD-Recorder
        drive_scsi_dev_family=sr|scd|sg         select Linux device type
        -v              increment verbose level by one
        -V              increment SCSI command transport verbose level by one
        -checkdrive     check if a driver for the drive is present
        -inq            do an inquiry for the drive
...

こちらの方もcdrecordの主要な機能のみをカバーしている程度ですが,⁠mkisofsで作成したISOイメージをcdrecordで書き込む」という使い方の範囲は十分対応できます。また,このオプションもシンボリックリンクを利用してcdrecordという名前でxorrisoを起動すれば,自動的に有効になります。

エミュレーション機能を使えば,xorriso独自の機能を学ばなくても,従来通りのmkisofs/cdrecordのつもりでxorrisoを使うことができます。しかしながら,前回までに紹介してきたように,xorrisoにはISO9660ファイルシステムを自在に操作する便利な機能があるので,ぜひそれらも使いこなせるようになってください。

著者プロフィール

こじまみつひろ

Plamo Linuxとりまとめ役。もともとは人類学的にハッカー文化を研究しようとしていたものの,いつの間にかミイラ取りがミイラになってOSSの世界にどっぷりと漬かってしまいました。最近は田舎に隠棲して半農半自営な生活をしながらソフトウェアと戯れています。

URLhttp://www.linet.gr.jp/~kojima/Plamo/index.html

コメント

コメントの記入