ISOイメージの編集に使用できるUbuntuのツールを探しています。UbuntuおよびWindows ISOのような起動可能なISOイメージを含みます。編集するだけでなく、編集したISOを保存し、USBドライブまたはCD / DVDに書き込むときに起動することができます。
ISOイメージの編集に使用できるUbuntuのツールを探しています。UbuntuおよびWindows ISOのような起動可能なISOイメージを含みます。編集するだけでなく、編集したISOを保存し、USBドライブまたはCD / DVDに書き込むときに起動することができます。
回答:
PowerISOは、ISO編集ソフトウェアのLinuxバージョンをリリースしました。ISO Masterと同様に、ISOが起動可能かどうかの状態を保持します。ただし、(最初に削除することで)元のファイルに直接保存できるため、両方のファイルに十分なディスク領域を確保する必要はありません。また、そのインターフェイスは、ISOマスターよりも簡単で直感的に使用できます。
これに対する一般的な答えは、isoファイルをアンパックし、変更して、再度パックすることです。dv3500eaの答えで述べたように、「ISOマスター」は、それを行うための優れたフロントエンドのように見えます。
次の場合:
次に、この答えはあなたです!
要約すると、isofsファイルシステム内の既存のファイルを目的のファイルに置き換えます。目的のファイルは、既存の(ターゲット)ファイルよりも小さくなければならず、末尾の空白(またはゴミ)を受け入れられる必要があります。これには実際には2つのコマンドしか必要ありませんが、注意してください。入力ミスはターゲットファイルシステムを完全に破壊したり、ソースファイルを上書きすることさえあります。バックアップはあなたの友達です!
私の場合、スクリプトをライブブートに保存したいので、毎回スクリプトを再入力する必要はありません。スクリプトはにscript.py
あり、ターゲット(USBスティック)はにあり/dev/sdc
ます。スクリプトのサイズは202バイトなので、最初のステップは、202バイトを超えるファイルを見つけて上書きできるようにすることです。でマウントした後/mnt
、適切なファイルを見つけました/mnt/info.txt
。
info.txt
マウントポイントを上書きすることはできません。読み取り専用のファイルシステムであると文句を言います。しかし、私たちはルートなので、それが何を意味するのかを見せましょう!info.txt
ファイルシステムのどこにあるかを把握する必要があります。(おそらく)に固有のいくつかの文字列を検索しinfo.txt
、たとえばThis is the official distribution CD of X.
、ディスク上での検索:
$ sudo strings -a -t d /dev/sdc | grep 'CD of X.'
2573588480 This is the official distribution CD of X. See INSTALL for how to [...]
あるいは、これはgrepでも実行できます。これははるかに高速ですが、最初から指定する必要があります$ sudo grep -oba 'This is ...' /dev/sdc
。
場所がわかったので、これらのバイトをファイルに置き換えるだけです。
$ sudo dd if=script.py of=/dev/sdc conv=notrunc bs=1 seek=2573588480 count=202
この行:
if
)から出力ファイル(of
)にバイトをコピーします。「すべてがファイル」であるため、出力ファイルが実際にデバイスであることを気にしません。conv=notrunc
出力ファイルを切り捨てないように指示します。これは、特定のポイントからファイルを上書きするのではなく、数バイトのみを上書きするためです。bs=1
ブロックサイズを1に設定します。通常は4k以上のブロックサイズが必要ですが、これにより(インライン)数学を行う必要がなくなり、バイトに正確な位置を指定できます。seek=N
出力ファイル内の特定のポイントをシークします(入力ファイルからバイトをスキップseek=N
するskip=N
ため、異なる点に注意してくださいskip
!)。もちろん、ターゲットテキストがある場所に設定します。count=N
これだけのバイトをコピーします。入力ファイルの終わりに気付くので、これは省略できると思いますが、念のために残しました。そして出来上がり、ファイルは上書きされます!
ただし、ターゲットファイルはスクリプトよりも大きかったので、USBスティックでは、ファイルは「while do if run()blah; blah(); yright 2007 X Inc.」のようになりました。後続のゴミがあります。これを修正する2つの方法:入力ファイルを長くする(スペースを追加する)か、最後にコメント記号を追加します。多くのエディターは末尾に改行を追加するためcount=
、N-1
バイトに設定する必要がある場合があります(ファイルが203バイトになり、最後のバイトが改行であることに気付いたら、カウントを202に設定します)。xxd script.py | tail
最後のバイトが0a
(または、奇妙な場合には0d
)であるかどうかを使用して確認することにより、ファイルの改行を確認できます。
プロセスは同一です.iso
ファイル、ちょうど精神的に交換してください/dev/sdc
とyour.iso
。
マウントポイント内のターゲットをチェックして動作するかどうかを確認する場合strings
、ファイルはおそらく読み取りキャッシュにあるため、再度使用する必要があります(今回はスクリプトの検索)。