个人工具

UbuntuHelp:ManageDiscImages

来自Ubuntu中文

Wikibot讨论 | 贡献2008年10月19日 (日) 12:50的版本

跳转至: 导航, 搜索


Convert CloneCD Images to ISO

Installation

Download the latest version from [homepage] extract the archive files

tar xvfz ccd2iso-x.x.tar.gz

enter the new directory

cd ccd2iso

You need aclocal-1.6, therefore we have to install automake1.6

sudo apt-get install automake1.6

configure and compile it

./configure
make

install it

sudo make install

or to install it via a deb file (CheckInstall)

sudo make checkinstall

Usage

Normally you would have 3 file from CloneCD image, they are .ccd, .img, and .sub general usage:

ccd2iso <.img filename> <.iso filename>

for example:

ccd2iso myimage.img myimage.iso

Convert BIN/CUE Images to ISO

Installation

sudo apt-get install bchunk

Usage

As the name implies, a BIN/CUE CD image has two files. BIN being a binary of the raw CD data, and CUE being an ASCII file of CD layout. general usage:

bchunk <image.bin> <image.cue> <basename>

for example:

bchunk myimage.bin myimage.cue myimage

Where basename(myimage) is myimage.iso of the produced file.

Convert DMG (compressed z-lib) to ISO

Notes

I noticed a lot of people having difficulties with the old method, using the deprecated PERL script, so this method is a two step method. Convert to img, mount, then use Brasero to create an ISO. This way will also let you just mount the image if you don't want to take the last step of converting and creating an ISO from it. The old method has been preserved on the Wiki for the case that this way does not work.

New Method

Installation

For this method we'll be using dmg2img, written by Jean-Pierre Demailly. Download the latest source code of dmg2img from [[1]]. At the time of writing that was version 1.1, so this tutorial will be written from that point of view. Decompress the source code and then install the libraries that will be required to build it.

ubuntuer@(fridge)[~/temp]$ tar -xzf dmg2img-1.1.tar.gz
ubuntuer@(fridge)[~/temp]$ sudo apt-get install libssl-dev libcurl4-openssl-dev

Now we go to the new directory, build, and install dmg2img

ubuntuer@(fridge)[~/temp]$ cd dmg2img-1.1/
ubuntuer@(fridge)[~/temp/dmg2img-1.1]$ make
ubuntuer@(fridge)[~/temp/dmg2img-1.1]$ sudo make install

Usage

Pretending we're working with 'MyDMG.dmg' we'll do the following (Example output shown).

ubuntuer@(fridge)[~/myDMGs]$ dmg2img MyDMG.dmg newImage.img

dmg2img v1.1 is derived from dmg2iso by vu1tur ([email protected])

MyDMG.dmg --> newImage.img

reading property list, 175755 bytes from address 712400386 ...

decompressing:
opening partition 0 ...   0.00 %  ok
opening partition 1 ...   0.00 %  ok
opening partition 2 ... 100.00 %  ok
Archive successfully decompressed as  newImage.img

Linux users should be able to mount the archive [as root] by :

modprobe hfsplus
mount -t hfsplus -o loop newImage.img /mnt

You'll not want to follow their instructions exactly. Mounting to /mnt could cause problems, or just be messy. A better idea is to make a temporary folder and mount the image there

ubuntuer@(fridge)[~/myDMGs]$ mkdir -p /tmp/images/myImage
ubuntuer@(fridge)[~/myDMGs]$ sudo modprobe hfsplus
ubuntuer@(fridge)[~/myDMGs]$ sudo mount -t hfsplus -o loop newImage.img /tmp/images/myImage

At this point the image is available for browsing under the /tmp/images/myImage directory. If that's all you need then you don't need to go any further. If you would like to create an ISO you'll need to keep on reading

Creating the ISO

If you're using GNOME then you can run Brasero from the 'Applications -> Sound & Video' menu. Brasero provides an option called 'Create a New Data Project' which is accessible from either the main Brasero screen, or through 'Project -> New Project -> New Data Project'. In the left panel you will browse to where you mounted the img (/tmp/images/myImage in this example). Select all the files that are in that directory and drag them to the panel on the right side of the screen. As you add more and more files you will see a bar graph fill up indicating how much space you have used and have remaining. You can change what kind of disk it's checking your space against by selecting the icon to the left of the bar graph and choosing an option from there. When you're finished just press "Burn" on the bottom of the right panel, to the right of the bar graph. A new screen will come up where you will be able to "Select a disc to write to". Select "Image File" if you have multiple options to chose from. If you press the "Properties" button on the right you can chose where to save the iso and what it will be named. Next to "Label of the disk" You chose anything you'd like that you think adequately describes your disk. Selecting "Increase compatibility with Windows systems" is entirely your decision, the specifics of what that option does is out side of the scope of this Wiki.

Old Method

Installation

Download the latest version from [[2]] and move the perl script for example into the directory: /usr/local/bin/

sudo mv dmg2iso.pl /usr/local/bin/

Usage

dmg2iso.pl <filename.dmg> <filename.iso>

Example

dmg2iso.pl disc1.dmg disc1.iso

Mount ISO Files

Create the directory for mount point:

sudo mkdir –p /mnt/iso

Use mount command as follows (assumes that your ISO file name is disk1.iso):

sudo mount -o loop disk1.iso /mnt/iso

Now your ISO is mounted on /mnt/iso/

Integrate Disk Image Mounting/Unmounting into Gnome (Nautilus)

The following will allow you to mount disk images (.iso, .img, .bin, .nrg, .mdf) by simply right clicking on the image file and selecting "Mount Disk Image". This solution uses fuse, so it does not require sudo rights or a password! The mounted image will be linked on the desktop, in the Places menu, and on the Places Bar in Nautilus; similar to how removable devices (CD/DVD/USB) appear. To unmount an image, right click it's desktop icon and select "Unmount Disk Image". All disk image mounts will be removed upon a restart of gnome.

  • NOTE: Only disk images that are part of the system hierarchy are supported, images on smb://, nfs://, etc. are not supported unless those remote file systems are mounted to a local folder.

Install fuseiso and nautilus-actions package

sudo apt-get install fuseiso nautilus-actions

Add permitted users to the fuse group (run once for each user who should be able to mount using fuse).

sudo usermod -a -G fuse username

Logout and back in to have the current logged in user get the fuse group permissions. Download the userisomount.sh script from [[3]]. Copy the script to /usr/local/bin/ and make it executable.

sudo cp ~/Desktop/userisomount.sh /usr/local/bin/
sudo chown root:fuse /usr/local/bin/userisomount.sh
sudo chmod 754 /usr/local/bin/userisomount.sh
  • note: ~/Desktop is the default firefox download location. If you saved the file elsewhere, adjust as necessary.

Download the Nautilus Actions Schemas for [[4]] and [[5]] disk images from within nautilus. Import these into the Nautilus Actions Extension, by opening (System Menu -> Preferences -> Nautilus Actions Configuration) and clicking Import/Export. Create an entry named "Clean Disk Image Mounts" in (System Menu -> Preferences -> Sessions -> Startup Programs) that runs the following command at startup. (Place the command below in the command box)

/usr/local/bin/userisomount.sh clean

By default, the images are mounted in the user's home directory in a hidden folder called ".mymounts", and the desktop icon used will be gtk-dev-removable from the current icon theme. Both of these parameters can be modified at the top of the /usr/local/bin/userisomount.sh script. To quickly unmount all of your mounted images, you can press Alt+F2 and execute:

userisomount.sh clean

Vote for this to be included in upcoming versions of Ubuntu!: [6]

Troubleshooting

cat /etc/group |grep fuse

should return something like: "fuse:x:###:yourusername". If not, rerun the usermod command above.

ls -al ~ |grep .mymounts

should show you as the owner and group, if it shows root, then you ran the script using sudo and need to run the following command to fix it:

sudo userisomount.sh clean ; sudo rm -r ~/.mymounts ; sudo chown username:username ~/.gtk-bookmarks