dmg

[hdiutil]背景画像付きのDMGを作成する

[hdiutil]互換性を保ってDMGファイルを作る
https://force4u.cocolog-nifty.com/skywalker/2021/01/post-a361a1.html

から放置した…
DMGファイルを作成する時に
バックグラウンドに画像を配置するパターン
background-820x460.pngを自分で好みの画像に置き換えれば
お好きな背景のDMGができます

ダウンロード - makebackgroundimagedmg.zip



property theBkImage : "background-820x460.png"


on run
set theWithPrompt to "フォルダからDMG形式のディスクイメージを作成します"
set aliasDefaultLocation to (path to desktop folder from user domain) as alias
set theFileType to "public.folder,public.directory" as text
set AppleScript's text item delimiters to {","}
set theFileTypeList to every text item of theFileType
set AppleScript's text item delimiters to {""}
set DropObj to (choose folder default location aliasDefaultLocation ¬
with prompt theWithPrompt ¬
invisibles true ¬
with multiple selections allowed and showing package contents)
set DropObj to DropObj as list
open (DropObj)
end run





on open DropObj
set listFormatList to ¬
{"UDRW:read/write", ¬
"UDRO:read-only", ¬
"UDCO:ADC-comp", ¬
"UDZO:zlib-comp", ¬
"ULFO:lzfse-comp", ¬
"ULMO:lzma-comp", ¬
"UDBZ:bzip2-comp", ¬
"UDTO:master", ¬
"UDSP:SPARSE", ¬
"UDSB:SPARSEBUNDLE", ¬
"UFBI:MD5checksum"} as list
set theFormat to (choose from list listFormatList with title "フォーマット選択" with prompt "フォーマット選択" default items "UDRO:read-only" empty selection allowed no with multiple selections allowed) as text
set AppleScript's text item delimiters to ":"
set listFormat to every text item of theFormat
set AppleScript's text item delimiters to ""
set theFormat to (item 1 of listFormat) as text




set listFormatList to ¬
{"HFS+:通常拡張", ¬
"HFS+J:ジャーナリング", ¬
"HFSX:大小文字判別", ¬
"JHFS+X:ジャーナリング大小文字判別", ¬
"APFS:現行macOS10.13以上", ¬
"FAT32:Windows互換汎用", ¬
"ExFAT:Windows互換推奨", ¬
"UDF:ディスクマスター用", ¬
"UFBI:MD5checksum"} as list
set theFileSystem to (choose from list listFormatList with title "ファイルシステム選択" with prompt "ファイルシステム選択" default items "HFS+J:ジャーナリング" empty selection allowed no with multiple selections allowed) as text
set AppleScript's text item delimiters to ":"
set listFileSystem to every text item of theFileSystem
set AppleScript's text item delimiters to ""
set theFileSystem to (item 1 of listFileSystem) as text
repeat with objFiles in DropObj
set theAlias to objFiles as alias
tell application "Finder"
set aliasFolderContainerDir to (container of theAlias) as alias
set theFolderContainerPath to (POSIX path of aliasFolderContainerDir) as text
end tell
set theFileInfo to info for objFiles as alias
set theFolderName to (name of theFileInfo) as text
set theOrgPath to (POSIX path of objFiles) as text
tell application "Finder"
set aliasMyPathDir to (container of (path to me) as alias) as alias
set theMyPathDir to (POSIX path of aliasMyPathDir) as text
end tell
set theBgimagesPath to ("" & theMyPathDir & theBkImage) as text
set theBgimagesDistPath to ("" & theOrgPath & ".background.png") as text
set theCmdCom to ("ditto \"" & theBgimagesPath & "\" \"" & theBgimagesDistPath & "\"") as text
do shell script theCmdCom
log theCmdCom
(*
tell application "Finder"
set objFinder to (make new Finder window)
activate
delay 1
tell objFinder
activate
set theMakeWindowID to id
end tell
delay 1
tell window id theMakeWindowID
activate
set target to objFiles
set toolbar visible to false
set pathbar visible to false
set current view to icon view
set sidebar width to 0
set position to {50, 50}
set bounds to {50, 50, 820, 460}
set statusbar visible to false
set arrangement of its icon view options to arranged by name
try
set background picture of its icon view options to file ".background.png"
on error
delay 2
set background picture of its icon view options to file ".background.png"
end try
end tell
delay 1
close window id theMakeWindowID
end tell
*)
set theCmdCom to ("hdiutil create -volname \"" & theFolderName & "\" -srcfolder \"" & theOrgPath & "\" -ov -fs " & theFileSystem & " -format UDIF \"" & theFolderContainerPath & theFolderName & ".tmp.dmg\"") as text
do shell script theCmdCom
delay 1
set theCmdCom to ("hdiutil attach -noverify -noautofsck -noidme -quiet \"" & theFolderContainerPath & theFolderName & ".tmp.dmg\"") as text
do shell script theCmdCom
set theDiskwindowPath to ("/Volumes/" & theFolderName) as text
tell application "Finder"
set aliasDiskwindowPath to POSIX file theDiskwindowPath as alias
set objFinder to (make new Finder window)
activate
delay 1
tell objFinder
activate
set theMakeWindowID to id
end tell
delay 1
tell window id theMakeWindowID
activate
set target to aliasDiskwindowPath
set toolbar visible to false
set pathbar visible to false
set current view to icon view
set sidebar width to 0
set position to {50, 50}
set bounds to {50, 50, 820, 460}
set statusbar visible to false
set arrangement of its icon view options to arranged by name
try
set background picture of its icon view options to file ".background.png"
on error
delay 2
set background picture of its icon view options to file ".background.png"
end try
end tell
delay 1
close window id theMakeWindowID
end tell
try
tell application "Finder"
activate
delay 1
eject disk theFolderName
end tell
on error
try
set theCmdCom to ("diskutil unmount \"/Volumes/" & theFolderName & "\"") as text
do shell script theCmdCom
end try
try
set theCmdCom to ("umount -f \"/Volumes/" & theFolderName & "\"") as text
do shell script theCmdCom
end try
end try
set theCmdCom to ("hdiutil convert -format UDRO \"" & theFolderContainerPath & theFolderName & ".tmp.dmg\" -o \"" & theFolderContainerPath & theFolderName & ".dmg\"") as text
do shell script theCmdCom
try
set theCmdCom to ("hdiutil detach \"/Volumes/" & theFolderName & "\" -force") as text
do shell script theCmdCom
end try
set thetmpDMGpath to ("" & theFolderContainerPath & theFolderName & ".tmp.dmg") as text
tell application "Finder"
set aliastmpDMGpath to POSIX file thetmpDMGpath as alias
move file aliastmpDMGpath to trash
end tell
set theCmdCom to ("rm -f \"" & theBgimagesDistPath & "\"") as text
do shell script theCmdCom
end repeat
end open

|

[hdiutil]互換性を保ってDMGファイルを作る

毎度思うけど、いろいろ変わりすぎ…やって…
pkgファイルをリモートでマウントして実行できるので便利なdmg形式
旧フォーマットのファイルでもリソースフォークを保持したまま
ある程度は圧縮もできるMacな人には便利なアーカイブイメージです

DMGファイルを作るのには『hdiutil』を使いますが
10.15で
UDRW - UDIF read/write image
UDRO - UDIF read-only image
UDCO - UDIF ADC-compressed image
UDZO - UDIF zlib-compressed image
ULFO - UDIF lzfse-compressed image (OS X 10.11+ only)
ULMO - UDIF lzma-compressed image (macOS 10.15+ only)
UDBZ - UDIF bzip2-compressed image (Mac OS X 10.4+ only)
UDTO - DVD/CD-R master for export
UDSP - SPARSE (grows with content)
UDSB - SPARSEBUNDLE (grows with content; bundle-backed)
UFBI - UDIF entire image with MD5 checksum
UDRo - UDIF read-only (obsolete format)
UDCo - UDIF compressed (obsolete format)
RdWr - NDIF read/write image (deprecated)
Rdxx - NDIF read-only image (Disk Copy 6.3.3 format;deprecated)
ROCo - NDIF compressed image (deprecated)
Rken - NDIF compressed (obsolete format)
DC42 - Disk Copy 4.2 image (obsolete format)
だったのが
OS11で
昔々のディスクイメージ系のフォーマットが全部廃止
UDRW - UDIF read/write image
UDRO - UDIF read-only image
UDCO - UDIF ADC-compressed image
UDZO - UDIF zlib-compressed image
ULFO - UDIF lzfse-compressed image (OS X 10.11+ only)
ULMO - UDIF lzma-compressed image (macOS 10.15+ only)
UDBZ - UDIF bzip2-compressed image (Mac OS X 10.4+ only)
UDTO - DVD/CD-R master for export
UDSP - SPARSE (grows with content)
UDSB - SPARSEBUNDLE (grows with content; bundle-backed)
UFBI - UDIF entire image with MD5 checksum
本当に変わっていきますなぁ…いろいろと

ダウンロード - makedmg.zip

|

[hdiutil]unionマウントを試してみる

unionマウントについて
こちらの記事
[chflags]Finder上での『鍵』マークの仕組み: [FORCE][LINK]新しいウィンドで開きます
出たので調べてみました。

概要は
やっぱりこちらの記事
UnionMountとUnion-type Filesystem(1) - O'Reilly Japan Community Blog[LINK]新しいウィンドで開きます
わかりやすいです。
『同じマウントポイントに重ねるようにマウントする』って事ですね。

OSXでは
このような形でしたら
Force4u00221025_31613

まずはDisk1.dmgをマウントして


hdiutil attach Disk1.dmg -mountpoint /Users/Shared/Desktop/tmp/ -union



続いてDisk2.dmgをユニオンマウントする


hdiutil attach Disk2.dmg -mountpoint /Users/Shared/Desktop/tmp/ -union



形になるんだと思うんですが



sh-3.2$ ls -al
-rw-rw-rw- 1 XXXXX staff 342 10 24 21:59 file1
-rw-rw-rw- 1 XXXXX staff 342 10 24 21:59 file2




とちゃんと
ユニオンマウントされて
両方のディスクの内容が確認できるのですが

Finder上からは、残念ながらファイルが見えない

Force4u00221025_31632

Finderから見えないので
検索も実行も出来ない
おしいなぁ

マウントを解除するのは
df -kで
デバイスを確認してから


sh-3.2$ df -k
/dev/disk1s2 100000 2880 97120 3% /Users/Shared/Desktop/tmp
/dev/disk2s2 100000 2912 97088 3% /Users/Shared/Desktop/tmp




先にDisk2を解除してから
hdiutil detach /dev/disk2s2
続いてDisk1を解除する感じです。
hdiutil detach /dev/disk1s2


システム上は認識するので
ローカル環境よりは
ディスクを
リモートでマウントでして
展開したりパッケージをインストールしたり
って時に使うかも?しれないけど
ファインダが認識すれば素材集のiso形式のディスクとかで
使えるんだけどなぁ
10枚CDマウントしても1っ箇所で検索や実行が出来るんだけど
OSXに限って言えばFinderが認識しないので
ナニですなぁ
(それとも認識させる方法あるかな?)


とりあえず使わなそうな機能なので
そのうち気が向いたら調べるって事で

| | コメント (0)

[diskutil]CDROMをファイルに複製【dd】

CD-ROM等『物理ディスク』

ディスクイメージ『ファイル』に変換します。

コマンドを使います。

 

CD-ROMを挿入すると
まぁ↓のように
Force4u00221004_02619
デスクトップ上に表示されます。

このディスクのマウント先
を調べます。
dfコマンドを使います。
Force4u00221004_05122

↑の場合は『デバイス』は
/dev/disk1s0
となりますね。

イメージファイルを作る前に
マウントされているディスクを
アンマウントします。


sh-3.2$ diskutil unmount /dev/disk1s0
Volume 20081011213315 on disk1s0 unmounted
sh-3.2$

とコマンドすることで
アンマウントされます。
/dev/disk1s0
の所はdfコマンドで調べた
デバイス名を指定します。

Force4u00221004_05247

ディスクユーティリテイで見ると
こんな感じで見れますね。

ではコマンド


sh-3.2$
sh-3.2$ dd if=/dev/disk1s0 of=/Users/Shared/Desktop/cdimg1.iso


/dev/disk1s0
はdfコマンドで調べたデバイス名

/Users/Shared/Desktop/cdimg1.iso
はファイルの書き出し先
を指定します。


sh-3.2$ dd if=/dev/disk1s0 of=/Users/Shared/Desktop/cdimg1.iso
dd: /dev/disk1s0: Input/output error
1054216+0 records in
1054216+0 records out
539758592 bytes transferred in 220.927567 secs (2443147 bytes/sec)
sh-3.2$
sh-3.2$


終了すると
isoディスクイメージが出来ます。

出来上がったら


sh-3.2$ diskutil eject /dev/disk1s0

Disk /dev/disk1s0 ejected
sh-3.2$
sh-3.2$

とイジェクトしてもいいですし
ディスクユーティリティから
イジェクトしても良いですね。

| | コメント (0)

[Mac Fan.jp]dmg to iso【Mac Fan.jpの記事から】

Mac Fan.jp:ウィンドウズでも扱えるISOイメージファイルを作る[LINK]新しいウィンドで開きます

dmgファイル

isoフォーマットに変換する

これは良い

ISO形式ならまぁWindowsで普通に開けるし
Macでも普通に開ける
I良いですね。

set localPrep to the path to desktop as alias


tell application "Finder"

set FileAlias to choose file with prompt "ファイルを選んでください" default location (localPrep) with showing package contents and invisibles
---選んだファイルを取得
set ObjFiles to my result
---ファイル名を取得
set theName to name of ObjFiles
---拡張子を取得
set exeName to name extension of ObjFiles
---ファルのエイリアスを取得
set theAlias to ObjFiles as alias
---エイリアスパスをUNIXパスへ変更
set OpenFiles to (POSIX path of theAlias)
---フルパスからファイル名を抜いてディレクトリパスを取得
set DirName to my replace(OpenFiles, theName, "")
---ファイル名から拡張子を取って
set OrgFileName to my replace(theName, exeName, "")
---新しい拡張子を追加
set NewFileName to OrgFileName & "iso"
---新しいファイルのパスとファイル名を定義
set NewFileDIr to DirName & NewFileName
---コマンドを整形
set ComText to "hdiutil makehybrid -iso -joliet -o " & NewFileDIr & " " & OpenFiles as Unicode text

---コマンド実行
do shell script ComText

end tell







--------------------------------------------------#ここからサブルーチン
to replace(theText, orgStr, newStr)
set oldDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to orgStr
set tmpList to every text item of theText
set AppleScript's text item delimiters to newStr
set tmpStr to tmpList as text
set AppleScript's text item delimiters to oldDelim
return tmpStr
end replace


「dmg2iso.scpt.zip」をダウンロード[Download]新しいウィンドで開きます

「dmg2iso.rtf」をダウンロード[LINK]新しいウィンドで開きます

| | コメント (0)

[dmg2iso]WindowsでDMGをISOに変換する【未確認】

未確認です。
こちらのビデオデモを見ると

Force4u00221012_192415
YouTube - convert .dmg to .iso (windos 7 64bit)[LINK]新しいウィンドで開きます

Windowsで
dmgファイルをisoフォーマットに変換出来るようです
本当かなぁ

ビデオデモで使われているのは
こちらの製品
Force4u00221012_192326
PowerISO - Create, Edit, Compress, Encrypt, Split, Mount, Extract ISO file, ISO/BIN converter, Virtual Drive[LINK]新しいウィンドで開きます
のようです。

 

もうひとつ
こちらの製品も確認はしていませんが
  
Force4u00221013_62740

AnyToISO - Open/Extract/Convert to ISO, Extract ISO, Make ISO CRYSTALIDEA Software[LINK]新しいウィンドで開きます


DMGを変換出来るように書いてある

時間があるときにでも
試してみたい。

 


Force4u00221016_110822

Download IsoBuster: CD Data Recovery software also featuring DVD, BD and HD DVD file data rescue[LINK]新しいウィンドで開きます

| | コメント (0)

その他のカテゴリー

Accessibility AccessibilityCheck AccessibilityForm AccessibilityInDesign AccessibilityPDF Acrobat Acrobat Action Acrobat Annotation Acrobat AppleScripts Acrobat Character Acrobat Layer Acrobat PDF Embed API Acrobat PDF Form Print Acrobat Plug-ins Acrobat Portfolios Acrobat Print AcrobatBarcode AcrobatDialog AcrobatForm AcrobatJS AcrobatMenu AcrobatPDF AcrobatStamp AcrobatYouTube AddressBook Adobe Adobe InDesign Adobe Photoshop AdobeAppleScript AdobeBridge AdobeIllustrator AdobeJSX aed Alfresco Android AnimationGif Apple Apple Support AppleScript AppleScriptBasics AppleScriptCharacter AppleScriptColor AppleScriptDroplet AppleScriptErrorNum AppleScriptFolder AppleScriptFontBook AppleScriptRename AppleScriptTools AppleSymbols Applications Barcode Barcode2D BarcodePostal BetterHTMLExport Book BOX Browser buzz Certificates CharacterEntity CharacterSets Colors Cool Site CSS Cutting DecoMail DecorationMail Design Desktop Diff DJ dmg DNS Documents Download DTP eBook Editer eMail Envelopes ExifTool Facebook FFmpeg File System Fonts FontsTool FontsWeb FOOD FormPrint ftp Gadget Gif Animation Google Google Chrome Enterprise HexEditor HTML info iPhoto ISBN ISO iTunes iWork iWorkNumbers iWorkNumbersCalendar iWorkNumbersTimecard iWorkPages JavaScript JeditX JeditX Regexp JeditXAppleScript JIS jquery Letterpress Library logo Mac Admin Mac Archiver Mac Browser Mac Browser Plugin Mac QuickLook Mac Setup Mac Spotlight Mac Video Map Memo Microsoft Teams Mobby mobileconfig Moto Movies Music Network Basic ntp OCR Office OfficePowerPoint OSX Paint Pantone Paper PDFlib Permission Photo Pictograms Print Public Python QuickLook QuickTime QuickTimeSetting QuickTimeSound Real Media ReName ResourceFork ruby Sample Screen ScreenCast Search Security SEO Sharing SLAResource Sound Spotlight Stamp SWF TCC.db Tutorial PSD TV Twitter Typography Unicode Utilities Video WEB APP WebFont Wedding Windows WindowsMedia XML XMP XPS YouTube YouTube Rss