Błąd terminala z hdiutil

0

Próbuję stworzyć iso dla VMware Fusion za pomocą snowyhack.sh z obrazem, który zrobiłem używając dysku instalacyjnego OS X 10.6. Podczas korzystania z polecenia sudo ./snowyhack.sh Mac\ OS\ X\ Install\ DVD.dmg Dostaję ten błąd hdiutil: attach: extra image argument "OS" - "Mac" already specified

Zawartość snowyhack.sh:

#!/bin/bash
# Copyright Dave Parsons 2016
#set -x
set -e
set -E

# Check we have an input parameter
if [ "$#" -ne 1 ]
then
  echo "Usage: snowyhack.sh path_to_dmg"
  exit 1
fi

# The first argument is the path to the .app bundle (the input of the
# executable).
inputDMG="$1"
outputISO="${inputDMG%.*}.iso"

if [ ! -f "$inputDMG" ]
then
  echo "$inputDMG not found."
  exit 2
fi

echo Converting $inputDMG to $outputISO

# Clean up any shadow files
rm -f $inputDMG.shadow

# Attach DMG with shadow file 
hdiutil attach $inputDMG -shadow -nobrowse

# Enable installer to boot
touch /Volumes/Mac\ OS\ X\ Install\ DVD/System/Library/CoreServices/ServerVersion.plist

# Add startup script to fix the target VM
cp rc.cdrom.local /Volumes/Mac\ OS\ X\ Install\ DVD/private/etc/
chmod +x /Volumes/Mac\ OS\ X\ Install\ DVD/private/etc/rc.cdrom.local

# Detach the mounted installer DMG
hdiutil detach /Volumes/Mac\ OS\ X\ Install\ DVD/

# Convert to ISO using the shadow file
hdiutil convert -format UDTO -o $outputISO $inputDMG -shadow
mv -fv $outputISO.cdr $outputISO

# Clean up any shadow files
rm -f $inputDMG.shadow
Jordan Baron
źródło
Nie wiedząc, co jest w snowyhack.sh, możemy tylko zgadywać. Ale zgaduję, że snowyhack.sh nie podaje podwójnie cytowanych zmiennych, co prowadzi do problemów z dzieleniem wyrazów.
Gordon Davisson
To nie działa, daje mi ten sam błąd. (BTW użytkownik jest jordanbaron, a nie jordan)
Jordan Baron
1
@JordanBaron ;-). Nie udało mi się zhakować mnie na komputerze Mac tak szybko, aby uzyskać prawidłową nazwę użytkownika i prawdziwą ścieżkę do dmg. Ale: Uruchomię Sierra VM i przetestuję skrypt powłoki.
klanomath
Zmieniłem nazwę mojego pliku DMG na OSX.dmg i gdy używam tego samego polecenia, otrzymuję to: „oczekiwany CRC32 $ 9CBFCD75 / dev / disk6 1 DVD cp: rc.cdrom.local: Brak takiego pliku lub katalogu”
Jordan Baron
1
Działa to dobrze ze spacjami w nazwach JEŚLI podwójnie cytujesz wszystkie zmienne odniesienia, takie jak rm -f "$inputDMG.shadow" i hdiutil attach "$inputDMG" -shadow -nobrowse. Shellcheck.net jest dobrym narzędziem do znajdowania podstawowych problemów, takich jak w skryptach powłoki. Och, i proszę, nie zadzierajcie z IFS, chyba że wiecie, co robicie - może to spowodować naprawdę dziwne problemy.
Gordon Davisson