Cómo hacer bootable DVD Mac OSX Tiger

AlexDM

Activo
Cómo hacer bootable DVD Mac OSX Tiger

Buenas!!! Por fín lo he conseguido, despues de varios post haciendo preguntas y demás, parece que investigando y con horas de pruebas, he conseguido entender algo más del dichoso hdiutil...

Para los que queráis conocer todas las pruebas que he hecho, podeis
Entrar or Registrarse para completar la lectura
(aunque no creo que lo lea mucha gente ya...)

Podría poner este post por pasos, pero voy a empezar por lo que más me ha costado y más adelante que se añadan los "how to" para parchear drivers y demás... aunque ya hay posts que hablan de eso...

Lo interesante sería que alguien que controlase (juker12 te animas? :?: )mucho de shell script que ayudase a currarse un script para que no tener que ir lanzando cada paso desde un terminal, yo lo he intentado pero no paraba de darme errores así que lo hice desde un terminal.

Bueno pues al lio... lo primero que nos hace falta para poder hacer bootable una imagen ya sea dmg o iso son tres cosas.
1. Tener mkisofs (no la he podido subir... así que versiontraker)
2. Una imagen dmg o iso tipo jas.10.4.8 para hackintosh o la original para los apple.
3. Paciencia, aunque ya con este howto, no mucha.

Los pasos serían estos:

En el caso de que tengamos solo el dvd jas 10.4.8 lo primero que hay que hacer es la imagen
hdiutil convert /ruta/imagen.dmg -format UDTO -o /ruta/tempdisk.iso
Y converitla en lectura y escritura
hdiutil attach -readwrite /ruta/tempdisk.iso.cdr -owners on

Y ahora seguimos con el resto de pasos
diskutil rename /Volumes/Mac\ OS\ X\ Install\ Disc\ 1 osx86dvd

rm -rf /Volumes/osx86dvd/Xcode\ Tools

rm -rf /Volumes/osx86dvd/usr/standalone/i386
rm -rf /Volumes/osx86dvd/System/Library/Extensions
rm -rf /Volumes/osx86dvd/System/Library/CoreServices/boot.efi

cp -R /Volumes/Mac\ OS\ X\ Install\ Disc/Volumes/osx86dvdmach_kernel /Volumes/osx86dvd/mach_kernel
cp -R /Volumes/Mac\ OS\ X\ Install\ Disc/usr/standalone/i386 /Volumes/osx86dvd/usr/standalone/i386
cp -R /Volumes/Mac\ OS\ X\ Install\ Disc/System/Library/Extensions.mkext /Volumes/osx86dvd/System/Library/Extensions.mkext

Este fichero que estamos copiando, no lo copieis del dvd o de la imagen que tenemos del primer paso si tenéis pensado personalizar los paquetes de instalación
cp -R /Volumes/Mac\ OS\ X\ Install\ Disc/System/Installation/Packages/OSInstall.mpkg/OSInstall.dist /Volumes/osx86dvd/System/Installation/Packages/OSInstall.mpkg/Contents/OSInstall.dist

Los siguientes datos son ya todos muy fáciles.

mkdir -p /tmp/i386
cp /Volumes/osx86dvd//usr/standalone/i386/* /tmp/i386/
cd /tmp/i386
/Users/Alex/Desktop/autopatch/resources/mkisofs -R -V "osx86dvd" -no-emul-boot -T -J -c boot.cat -b cdboot -hide-joliet-trans-tbl -quiet -o /tmp/i386booter.iso .

/Users/Alex/Desktop/autopatch/resources/mkisofs -V "osx86dvd" -no-emul-boot -boot-load-size 4 -c boot.cat -b cdboot -quiet -o /tmp/i386booter.iso .

sectors=`du /tmp/i386booter.iso | tail -1 | awk '{print $1}'`

cd /Volumes/osx86dvd/
hdiutil create -quiet /Volumes/MacOS/Users/Alex/Desktop/autopatch/BurnThisImage.dmg -size 4481M -layout NONE
dev=`hdid -nomount /Volumes/MacOS/Users/Alex/Desktop/autopatch/BurnThisImage.dmg | tail -1 | awk '{print $1}' `
rdev=`echo $dev | sed s/disk/rdisk/`

pdisk $rdev -initialize
blocks=`pdisk $rdev -dump | grep 2: | awk -F" " '{print $4}'`
pdisk $rdev -dump

pdisk $rdev -createPartition osx86dvd Apple_HFS $sectors `expr $blocks - $sectors`

slice=`pdisk $rdev -dump | grep osx86dvd | awk -F: '{print $1}' | awk -F" " '{print $1}'`

dd if=/tmp/i386booter.iso of=$rdev skip=64 seek=64 bs=512

newfs_hfs -v osx86dvd ${rdev}s${slice}


mkdir -p /mnt
mount -t hfs -o perm ${dev}s${slice} /mnt
ditto -rsrc /Volumes/osx86dvd/ /mnt



bless -folder /mnt/System/Library/CoreServices -bootinfo /mnt/usr/standalone/i386/boot -label osx86dvd


umount /mnt
hdiutil eject -quiet $dev


cd /tmp/

diskutil eject /Volumes/Mac\ OS\ X\ Install\ Disc\ 1

update_prebinding -root /Volumes/osx86dvd -force

diskutil rename /Volumes/osx86dvd Mac\ OS\ X\ Install\ Disc\ 1
diskutil eject /Volumes/Mac\ OS\ X\ Install\ Disc\ 1

mv /Volumes/MacOS/Users/Alex/Desktop/autopatch/BurnThisImage.dmg /Volumes/MacOS/Users/Alex/Desktop/autopatch/BurnThisImage.iso
hdiutil mount /Volumes/MacOS/Users/Alex/Desktop/autopatch/BurnThisImage.iso -readwrite -owners on
diskutil rename /Volumes/osx86dvd Mac\ OS\ X\ Install\ Disc\ x86
hdiutil eject /Volumes/Mac\ OS\ X\ Install\ Disc\ x86

rm -rf /tmp
rm -rf /mnt

Bueno, pues por desgracia he de decir que no soy el autor de esto, sino que más bien, he conseguido encontrar el procedimiento, el verdadero script es el que pongo más abajo, pero claro como veréis las diferencias que hay son pequeñas, solo he quitado lo que yo no he necesitado, pero por lo menos así podeis ver los cambios de un script a otro.

-------------script original ------------------------
#!/bin/sh

#Set this to the directory of the autopatch dir
APDIR="/Volumes/x86/Users/user/Desktop/autopatch/"

cpfix ()
{
cp -r ./files/$1 $2
chown -R root:wheel $2
chmod -R 755 $2
echo $1 replaced
}

cd $APDIR

#Convert dmg to editable image
hdiutil convert ./place-dmg-in-here/macosx_10.4.4_dvd.dmg -format UDTO -o ./place-dmg-in-here/tempdisk.iso

#Mount new iso readwrite
hdiutil attach -readwrite ./place-dmg-in-here/tempdisk.iso.cdr -owners on

#Rename image
diskutil rename /Volumes/Mac\ OS\ X\ Install\ Disc\ 1 osx86dvd

#Delete Xcode to Free Space for Standard DVD Burn
rm -rf /Volumes/osx86dvd/Xcode\ Tools
echo Deleted Xcode

#Remove old files
rm -rf /Volumes/osx86dvd/usr/standalone/i386
rm -rf /Volumes/osx86dvd/System/Library/Extensions
rm -rf /Volumes/osx86dvd/System/Library/CoreServices/boot.efi
echo Deleted old boot files
echo Deleted unnecessary extensions

#Move Necessary Files
cpfix mach_kernel /Volumes/osx86dvd/mach_kernel
cpfix translate /Volumes/osx86dvd/usr/libexec/oah/translate
cpfix translated /Volumes/osx86dvd/usr/libexec/oah/translated
cpfix i386 /Volumes/osx86dvd/usr/standalone/i386
cpfix Extensions.mkext /Volumes/osx86dvd/System/Library/Extensions.mkext
cpfix loginwindow.app /Volumes/osx86dvd/System/Library/CoreServices/loginwindow.app
cpfix SystemUIServer.app /Volumes/osx86dvd/System/Library/CoreServices/SystemUIServer.app
cpfix ATSServer /Volumes/osx86dvd/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Support/ATSServer
cpfix mds /Volumes/osx86dvd/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Support/mds
cpfix diskimages-helper /Volumes/osx86dvd/System/Library/PrivateFrameworks/DiskImages.framework/Versions/A/Resources/diskimages-helper
cpfix 1165patchesSSE2.pkg /Volumes/osx86dvd/System/Installation/Packages/1165patchesSSE2.pkg
cpfix OSInstall.dist /Volumes/osx86dvd/System/Installation/Packages/OSInstall.mpkg/Contents/OSInstall.dist
cpfix postflight /Volumes/osx86dvd/System/Installation/Packages/OSInstall.mpkg/Contents/Resources/postflight

#Generate Bootable ISO
MKISOFS="$APDIR"/resources/mkisofs
VOLNAME="osx86dvd"
MKSIOFS_QUIET=
HDIUTIL_QUIET=
I386ISO=/tmp/i386booter.iso
MASTERCD="$APDIR"/place-dmg-in-here/tempdisk.iso
MSTRCDMNTD=/Volumes/osx86dvd/
# This give's you a DVD-R sized Disc Image
SIZE="4481M"
# The following can be anywhere you like its the the output image
CDDMG="$APDIR"/BurnThisImage

mkdir -p /tmp/i386
cp $MSTRCDMNTD/usr/standalone/i386/* /tmp/i386/
cd /tmp/i386
#"$MKISOFS" -R -V "$VOLNAME" -no-emul-boot -T -J -c boot.cat -b cdboot -hide-joliet-trans-tbl $MKISOFS_QUIET -o "$I386ISO" .
"$MKISOFS" -V "$VOLNAME" -no-emul-boot -boot-load-size 4 -c boot.cat -b cdboot $MKISOFS_QUIET -o "$I386ISO" .

sectors=`du "$I386ISO" | tail -1 | awk '{print $1}'`

# create a bootable image and remove any previous copies
cd "$MSTRCDMNTD"
if [ -f "$CDDMG" -o -f "$CDDMG".dmg ]; then
rm -f "$CDDMG" "$CDDMG".dmg
fi
hdiutil create $HDIUTIL_QUIET "$CDDMG".dmg -size $SIZE -layout NONE
dev=`hdid -nomount "$CDDMG".dmg | tail -1 | awk '{print $1}'`
rdev=`echo $dev | sed s/disk/rdisk/`

pdisk $rdev -initialize
blocks=`pdisk $rdev -dump | grep 2: | awk -F" " '{print $4}'`
if [ "$QUIET" == "" ]; then
pdisk $rdev -dump
fi
# create the partition on the image
pdisk $rdev -createPartition "$VOLNAME" Apple_HFS $sectors `expr $blocks - $sectors`
# figure out what slice the partition was created on
slice=`pdisk $rdev -dump | grep "$VOLNAME" | awk -F: '{print $1}' | awk -F" " '{print $1}'`

# copy the data onto the image
dd if="$I386ISO" of=$rdev skip=64 seek=64 bs=512
newfs_hfs -v "$VOLNAME" ${rdev}s${slice}
mkdir -p /mnt
mount -t hfs -o perm ${dev}s${slice} /mnt
ditto -rsrc "$MSTRCDMNTD" /mnt
bless -folder /mnt/System/Library/CoreServices -bootinfo /mnt/usr/standalone/i386/boot -label "$VOLNAME"
umount /mnt
hdiutil eject $HDIUTIL_QUIET $dev
cd /tmp/

diskutil eject /Volumes/Mac\ OS\ X\ Install\ Disc\ 1

#Update PreBinding
update_prebinding -root /Volumes/osx86dvd -force

#Rename to original image name
diskutil rename /Volumes/osx86dvd Mac\ OS\ X\ Install\ Disc\ 1
diskutil eject /Volumes/Mac\ OS\ X\ Install\ Disc\ 1

#Rename image to actual extension type
mv "$CDDMG".dmg "$CDDMG".iso
hdiutil mount "$CDDMG".iso -readwrite -owners on
diskutil rename /Volumes/osx86dvd Mac\ OS\ X\ Install\ Disc\ x86
hdiutil eject /Volumes/Mac\ OS\ X\ Install\ Disc\ x86

#Remove tempdisk & other dirs since they are useless now
rm -rf "$APDIR"/place-dmg-in-here/tempdisk.iso.cdr
rm -rf /tmp
rm -rf /mnt



Quedaría chulo añadir los howto para hacer paquetes y demás... jeje y si ya ponéis vuestras conclusiones sería la releche!!!

Un saludete
AlexDM
 

juker12

Activo
Ahh

el script original se lo vi una vez a jass, pero como todo script que hace este tio no pirula sin retoques previos

pichorro yo creo que te has calentado mucho la cabeza

Con lo facil que es pillar una iso que tengas ahora msimo que te funcione el boot


la abres con transamac en windows, borras lo que quieras, inserta un paquete que quieras
cambias la ruta y nombre de la llamada a tu paquete en el scrit del installer.dist

cierras y guardas cambios y ale, ya lo tienes
lista la iso para grabar con nero
 

AlexDM

Activo
Ya, pero lo chulo era no utilizar windows jajajaja (joe con lo ilusionado que estaba) jajaja

Aunque lo que dices me hubiera servido, PERO PODÍAS HABERMELO DICHO ANTES!!!!
;-)

Y lo del script como lo ves? porque a mi me petaba por todas partes, una vez que conseguí que no me diera problemas de permisos, luego no paraba de petar...
 

juker12

Activo
Ahh vale,,,,,,

bueno a ver..el script ese original era de maxxus..los pillos estos lo copiaron pero no funciona a partir de la build 10.4.6 usando mac claro esta

por que? por que a aprtir de la 10.4.6 los archivos cambiaron de permisos y entre ellos los encriptados traslate ( rosetta)

por eso cuando ejecutas ese script en un 10.4.7 o 10.4.8 da error cuando llega a esos archivos

bueno ya que te veo animado, buscate un post mio que ahora no lo veo, lleva de adjunto el paquete constructor de las developer

Con eso tienes para distraerte un buen rato creandote paquetes personalizados de drivers...de lo que quieras :)

Aunque aqui los maestros del scritp son novK04 que creo la iso castaña team y senhez que sabe un rato de scritp

Yo en esto se lo basico
 

AlexDM

Activo
Pues a ver si hay suerte y se pasan por post....

Por cierto lo del paquete constructor ya he estado jugando con el, aunque poco... Por cierto si hay que hacer cambios en algún kext o cosas similares no se puede hacer desde el PackageMaker, que recomiendas?

Supongo que tenerlo aparte modificado y con el instalador machacar los existentes.. no?
 

TOl2NADO

New member
Simplemente Notable

Hola amigo

Yo he seguido atentamente tu post pero por falta de tiempo y conocimientos en el tema no he podido particpar constructivamente.

Es simplemente notable tu trabajao y quiciera felicitarte por el y decirte que obviamente soy un intreresado en conocer el paso a paso de lo que haz logrado. Encantado podría ayudarte a realizar imagenes descriptivas del proceso. Muchas gracias y mucha suerte en todo...
 

AlexDM

Activo
Buenas TOl2NADO,
Muchas gracias por tu mensaje, se agradece :)

Respecto a lo de crear imágenes de los pasos para un tutorial, ahora lo tengo complicado por falta de tiempo, el problema que yo le veo a este procedimiento es que es muy tedioso, pero eso si, muy constructivo ya que me ha permitido conocer un poco más las tripas del mac.

Por eso la idea en su momento de hacer un script que automatizara un poco todo este proceso.
El script tendría que ser en Shell Script o alguno similar para unix, yo lo intenté pero me fue imposible (el único script que se me da bien es vbs).

Desde luego todo el que quiera aportar algo estaría genial.

De todas maneras y aunque no lo he probado, este proceso no creo que funcione para Leopard que es el que tendremos instalado dentro de poco ;-)

Un saludete!
AlexDM
 

WiLoW

New member
Wenas.

El proceso se deve de hacerse en OsX?? o en Linux?? es q tengo una copia de seguridad de Leopard final en .dmg y queria instalarla en mi intel C2D, para probar y aportar experiencias.
O si no puedo buscar el dvd jas 10.4.8 q ese si es booteable verdad?? q esta en las redes de pares??
Salu2
 

AlexDM

Activo
WiloW
Me cito para contestarte...

Bueno pues al lio... lo primero que nos hace falta para poder hacer bootable una imagen ya sea dmg o iso son tres cosas.
1. Tener mkisofs (no la he podido subir... así que versiontraker)
2. Una imagen dmg o iso tipo jas.10.4.8 para hackintosh o la original para los apple.
3. Paciencia, aunque ya con este howto, no mucha.

10.4.8 me estoy refiriendo a Tiger

Cuando consigas hacerlo para Leopard, comenta los pasos que será de gran ayuda para el foro.

Un saludete.
Alex.
 

3DuArDo1293

New member
oigan , amigos..
por que ya no esta el zip en la pagina...
a mi no me abre..
algun alma caritativa que me lo pase por favor ??
Gracias y salu2
 

juanhn

New member
Duda....

Como hafo el DVD bootable desde Windows ?? tengo el leopard final, pero nose como hacerle un DVD bootable para PC
 
Arriba