Montiranje OS X dmg datoteka pod Slack-om

Uputstva, saveti i trikovi

Moderator: Urednik

Post Reply

Administrator
Administrator
offline
User avatar

Posts: 4101
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 06 May 2016, 09:12


Već sam negde napomenuo da u poslednje vreme radim sa jednim starijim (Intel) Macbookom pa rekoh da podelim nekoliko saveta/iskustva koji bi mogli koristiti onima koji nisu imali vremena da se udubljuju u tematiku (pokretanje Slacka pod Mac računarima i korisni alati za kooperaciju sa OS X-om). Takođe može biti interesantno onima koji hakuju (akcenat na modovanje, ne ilegalne radnje) OS X na Slacku.

Dmg format je obična slika diska i može se bez problema montirati na Linuksu. Samo je pre montiranja potrebno proveriti da li je slika kompresovana ili ne. Recimo:

Code: Select all

$ file *.dmg
LightZone-4.1.3-SnowLeopard.dmg: zlib compressed data
LightZone-4.1.5-Mavericks.dmg:   zlib compressed data
Ove kompresovane datoteke zathevaju dodatan korak. Moraju se ekstraktovati. U tu svrhu možete koristiti dmg2img:

Code: Select all

dmg2img LightZone-4.1.5-Mavericks.dmg
Kao rezultat dobijamo datoteku LightZone-4.1.5-Mavericks.img.

Za one koji ne znaju kako montirati slike diska na Linuksu, to postižemo pomoću "loop" uređaja:

Code: Select all

losetup -P /dev/loop0 LightZone-4.1.5-Mavericks.img
Zatim montiranje možete izvršiti komandom mount. Proverite koliko particija ima slika diska:

Code: Select all

$ ls /dev/loop0*
/dev/loop0  /dev/loop0p1
Ne montiramo direktno /dev/loop0 već /dev/looop0p1 (pišem napamet, ali trebalo bi da radi):

Code: Select all

mount -o loop -t hfsplus /dev/loop0p1 /mnt/tmp
Kod mene je Xfce servis za automatsko montiranje uređaje prepoznao sliku diska odmah nakon izvršavanja komande losetup. Upitao me je za lozinku za montiranje i zatim završio posao. U pitanju je verzija Xfcea u currentu (14.2 RC). To izgleda ovako:
Screenshot_2016-05-06_09-58-48.png
Demontiranje vršite komandom umount:

Code: Select all

umount /dev/loop0p1
Nakon toga deaktivirajte loop0:

Code: Select all

losetup -d /dev/loop0



Administrator
Administrator
offline
User avatar

Posts: 4101
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 07 May 2016, 12:20


Ako ste slučano probali gornji postupak na bzip2 kompresovanoj dmg slici diska, verovatno ste primetili da dmg2img ne radi na njima.

Da se podsetimo, tip dmg slike možemo otkriti pomoću komande "file":

Code: Select all

$ file XQuartz-2.7.9.dmg 
XQuartz-2.7.9.dmg: bzip2 compressed data, block size = 100k
Za dekompresovanje bzip2 kompresovanih možemo koristiti p7zip.

Prvo ćemo izlistati sadržaj bzip2 kompresovane slike diska:

Code: Select all

7z l XQuartz-2.7.9.dmg
Dobićemo rezultat poput ovoga:

Code: Select all

Listing archive: XQuartz-2.7.9.dmg

--
Path = XQuartz-2.7.9.dmg
Type = Dmg
Method = zero0[4]-1663K zero2[6]-14409K bzip2[82]-73M-73M
Blocks = 92

   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
                    .....          512           70  0.MBR
                    .....          512          124  1.Primary GPT Header
                    .....        16384          128  2.Primary GPT Table
                    .....         3072            0  3.free
                    .....     93995008     76751002  4.hfs
                    .....         2560            0  5.free
                    .....        16384          128  6.Backup GPT Table
                    .....          512          125  7.Backup GPT Header
------------------- ----- ------------ ------------  ------------------------
                              94034944     76751577  8 files, 0 folders

Zanima nas particija sa oznakom hfs (4.hfs). Možemo je ekstraktovati ovako:

Code: Select all

7z e XQuartz-2.7.9.dmg 4\.hfs 
Ili je možemo sačuvati sa prilagođenim imenom:

Code: Select all

7z -so e XQuartz-2.7.9.dmg 4\.hfs > XQuartz-2.7.9.dekompresovan.dmg    
Dalje je postupak isti kao u gornjem tekstu.



Administrator
Administrator
offline
User avatar

Posts: 4101
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 07 May 2016, 12:23


Kad smo već kod p7zip-a, ova alatka se može koristiti i za direktno ekstraktovanje nekompresovanih dmg slika diska.

Code: Select all

7z x XQuartz-2.7.9.dekompresovan.dmg
Izlaz komande:

Code: Select all

Processing archive: XQuartz-2.7.9.dekompresovan.dmg

Extracting  XQuartz-2.7.9
Extracting  XQuartz-2.7.9/.HFS+ Private Directory Data
Extracting  XQuartz-2.7.9/.journal
Extracting  XQuartz-2.7.9/.journal_info_block
Extracting  XQuartz-2.7.9/.Trashes
Extracting  XQuartz-2.7.9/XQuartz.pkg
Extracting  XQuartz-2.7.9/[]

Everything is Ok

Folders: 4
Files: 3
Size:       77023335
Compressed: 93995008



Administrator
Administrator
offline
User avatar

Posts: 4101
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 09 May 2016, 11:59


Za one koji su zainteresovani za bezbolniju varijantu koja ne zahteva root pristup, tu je darling-dmg - alatka koja koristi FUSE za montiranje dmg datoteka sa korisničkim dozvolama.
This project allows ordinary users to directly mount OS X disk images under Linux via FUSE. darling-dmg is part of Darling - http://www.darlinghq.org" onclick="window.open(this.href);return false;. Without darling-dmg, the only way to do this would be to manually extract the DMG file, become root and mount the HFS+ filesystem as root.
Izgradnja
Darling-dmg se ne nalazi u SlackBuild.org. Može se izgraditi na sledeći način:

Code: Select all

cmake .
make
strip -s darling-dmg
Ili, da bismo sprečili nepotrebno kreiranje libdmg.so koju ne koristi ništa drugo na sistemu, ovako:

Code: Select all

sed -i 's/SHARED/STATIC/' CMakeLists.txt 
cmake .
make
strip -s darling-dmg
Upotreba

Code: Select all

darling-dmg ime.dmg destinacija
Preuzimanje
https://github.com/darlinghq/darling-dmg" onclick="window.open(this.href);return false;


Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests