9 Apr 2009

Operacje na plikach obrazów płyt w systemie Linux

Notatka: Większość tych informacji znalazłem na sieci i postanowiłem je umieścić w jednym miejscu, razem z przydatnymi odnośnikami. Cały artykuł powstał bo zapomniałem jak nazywa się program bchunk :(. Właściwie gdzieś już takie coś widziałem z tym, że po hiszpańsku chyba, więc pora na wersję polską.

Konwencja nazewnicza jest następująca

  • # - komendy poprzedzone takim znakiem muszą być wykonane z podwyższonymi prawami (roota)
  • $ - komendy poprzedzone takim znakiem mogą być wykonane przez zwykłego użytkownika
  • {} - argument niezbędny do poprawnego działania komendy
  • [] - argument opcjonalny
Skoro wszystko zostało już ustalone, pora przejść do opisywania rozwiązań

Konwersja/montowanie/przeglądanie plików

Pliki typu iso
Montowanie pliku typu iso w jakimś katalogu:
# mount -o loop,ro -t iso9660 {filename}.iso {mountpoint}
Wyświetlanie zawartości pliku iso bez potrzeby jego montowania:
$ isoinfo -f -i {filename}.iso
Konwersja plików typu BIN i CUE do ISO
Plików typu BIN i CUE nie można bezpośrednio zamontować pod systemem Linux (przynajmniej obecnie). Ale istnieją narzędzia pozwalające na konwersję plików w formacie BIN/CUE do formatu ISO i następnie je zamontować. Jednym z takich narzędzi jest bchunk (dostępny w repozytoriach Debiana).
$ bchunk {filename}.bin {filename}.cue {outputfilename}.iso
Istnieje również druga metoda, która pozwala na bezpośredni zamontowanie obrazu bin/cue przy użyciu CDEmu.
$ cdemu 0 {filename}.cue
$ mount -t iso9660,ro /dev/cdemu/0 {mountpoint}
Istnieje jeszcze program bin2iso - ale tutaj go nie opiszę, niemniej jednak można spróbować go użyć jeśli np do pliku BIN nie ma dołączonego pliku CUE. Jeżeli brakuje pliku CUE, można spróbować go stworzyć samemu (instrukcja wg. linuxtent.com):
  FILE "{filename}.bin" BINARY
  TRACK 01 MODE1/2352
  INDEX 01 00:00:00
  
podstawiając w miejsce {filename} odpowiednia nazwe pliku BIN. (Uwaga na cudzysłowy - Blogger je prawdopodobnie zamieni na znaki UTF8, więc dla własnego bezpieczeństwa polecam je również nadpisać). Z brakiem pliku CUE podobno też sobie radzi program Ultraiso - ale on jest pod Windowsa.
Konwersja/montowanie plików typu NRG (Nero Burning Rom) do ISO
Do konwersji plików NRG do formatu ISO służy narzędzie nrg2iso (jest w repozytorium Debiana).
$ nrg2iso {filename}.nrg {filename}.iso
Jeśli nie posiadamy np. dostępu do internetu istnieje możliwość zamontowania obrazu płyty w systemie Linux.
# mount -t iso9660 -o loop,offset=307200 {filename}.nrg {mountpoint}
Konwersja plików typu MDF i MDS do ISO
Do konwersji plików MDF i MSD na format ISO zostało stworzone narzędzie mdf2iso (znajduje się w repozytoriach Debiana).
$ mdf2iso {filename}.mdf {filename}.iso
Konwersja plików typu IMG do ISO
Obrazy IMG pochodzą np. z programu CloneCD do ich konwersji można wykorzytsać narzędzie: ccd2iso
$ ccd2iso imagen.img imagen.iso
Konwersja plików typu DAA do ISO
Pliki formatu DAA pochodzą z programu Poweriso, którego wersja istnieje także na Linuxa. Tak więc by dokonać konwersji na format ISO:
  1. Pobieramy program na Linuxa, rozpakowujemy go (tar -xvzf poweriso-*.tar.gz)
  2. Dokonujemy konwersji (będąc w katalogu gdzie mamy program Poweriso):
    $ ./poweriso convert {filename}.daa -o {filename}.iso

Podsumowując

Oto zbiór programów pozwalających na różne akcje na plikach obrazów płyt:
Nazwa programuObsługiwane formaty
bchunkBIN/CUE
nrg2isoNRG
mdf2isoMDF, MDS
ccd2isoIMG
cdemuBIN/CUE, CCD, CIF, C2D

Dodatkowe odnośniki

Jeśli się komuś chce, może dodać obsługę jakiegoś formatu do FUSE ja najczęściej spotykam się z formatem BIN/CUE - więc najbardziej by mi na nim zależało.

6 comments:

  1. Kolejne wpisy, kolejnych łatwych do znalezienia w sieci rzeczy. Coś czego znaleźć się nie da byłoby lepsze :).

    ReplyDelete
  2. A ja właśnie w sieci (konwersja bin-iso) znalazłem to.
    Super, dzięki, działa!

    ReplyDelete
  3. Może i kolejny ale mi pomogło -- dzięki

    ReplyDelete
  4. dzięki za ten tekst, przydał się

    ReplyDelete
  5. dobra robota:) montowanie .nrg działa 100%

    ReplyDelete