

You can check a file for newlines by using xxd script.py | tail and checking if the last byte is 0a (or, in weird cases, 0d). Note that many editors add a newline at the end, so you might want to set count= to N-1 bytes (if your file is now 203 bytes, and you notice that the last byte is a newline, set count to 202). Two ways to fix this: make our input file longer (add spaces), or add a comment symbol at the end. I think this can be omitted because it will notice the end of the input file, but I left it in just to be sure.īut wait, the target file was larger than our script, so on the USB stick, the file is now something like: "while do if run() blah blah() yright 2007 X Inc.". We set it, of course, to where the target text is.
#BEST FREE ISO CREATOR 2018 HOW TO#
See INSTALL for how to Īlternatively, this can also be done with grep, which is a lot faster, but then you need to specify it from the beginning: $ sudo grep -oba 'This is. Find some string that is (probably) unique to info.txt, for example This is the official distribution CD of X., and search for it on the disk: $ sudo strings -a -t d /dev/sdc | grep 'CD of X.'Ģ573588480 This is the official distribution CD of X. We are root, though, so let's show 'em what that means! We need to figure out where info.txt is on the filesystem.

We can't just overwrite info.txt on the mountpoint, it will complain that it's a read-only filesystem. After mounting it at /mnt, I found a suitable file at /mnt/info.txt. The size of the script is 202 bytes, so our first step is to find a file larger than 202 bytes, so we can overwrite it. The script is at script.py and my target (a USB stick) is at /dev/sdc. In my case, I wanted to store a script in a live boot so I don't have to retype it every time. This actually requires only two commands, but be careful: a typo can destroy the target filesystem completely, or even overwrite the source file. Our desired file must be smaller than the existing (target) file, and trailing whitespace (or garbage) must be acceptable. In summary, we will replace an existing file in the isofs filesystem with our desired file.

if you think this unpacking/repacking thing is just not hacky enough.iso9660) without copying the whole device, or you want to modify a storage device that contains an isofs filesystem (a.k.a.you only want to make a surgical modification instead of rewriting the whole thing.It looks like "ISO Master", as mentioned in dv3500ea's answer, is a good front-end to do that. The common answer to this is to unpack the iso file, modify it, and pack it again.
