Nel mio caso ho il lettore DVD integrato del mio PowerBook che è un po' difettoso ed ho la necessità di reinstallare sia Mac OSX che UBUNTU avviando da lettore DVD esterno USB.
Vediamo dunque come fare ad identificare in OpenFirware il percorso della nostra periferica rinnegata ed avviare da essa!
(nel mio caso è un lettore DVD esterno, ma va bene anche per avviare un'hard disk o anche una chiavetta USB)
PREMESSA: ho tagliato le righe di output non interessanti
Prima di tutto una cosa che ci tornerà utile più avanti: identificare la partizione del media da avviare! Da terminale e con il CD/DVD inserito:
$ mount
/dev/disk2s3 on /Volumes/Mac OS X Install DVD (local, nodev, nosuid, read-only)Dunque ci interessa la partizione numero 3 del media disk2.
(quest'ultima numerazione è variabile in base al numero di periferiche collegate al sistema)
ok, riavviamo in OpenFirmware (CMD+ALT+O+F) e diamo un'occhiata...
il comando dev è un po' come cd, in pratica cambia percorso nella gerarchia dei device.
Spostiamoci nella radice e diamo un ls:
0 > dev / 0 > dev / ok 0 > ls ff978d90: /pci@f2000000 ff9a06a0: /usb@1a ffa046e8: /device@1 ffa04898: /keyboard@0 ffa04bd8: /mouse@1 ffa04f10: /mouse@2 ff9a88d8: /usb@1b ffa036c8: /hub@1 ffa038d8: /disk@1 ffa03be8: /hub@2 ffa03df8: /device@1 ffa03f58: /device@2 ffa040b0: /disk@3 ffa043c0: /mouse@4 ff9b0b68: /usb@1b,1 ff9b8df8: /usb@1b,2 ok 0 >
Ho un hub USB al quale sono collegate altre periferiche oltre al lettore DVD: disk@1 è un hard disk esterno mentre disk@3 è proprio il mio lettore.
vediamo se c'è un alias che ci facilita evitando di dover scrivere l'intero percorso dalla radice
0 > devalias pci /pci@f2000000 usb0 /pci@f2000000/usb@1b,1 usb1 /pci@f2000000/usb@1b usb-1a /pci@f2000000/@18 usb-1b /pci@f2000000/@19 usb-1c /pci@f2000000/@1a usb-2a /pci@f2000000/@1b usb-2b /pci@f2000000/@1b,1 usb-2c /pci@f2000000/@1b,2 hd /pci@f4000000/ata-6@d/disk@0 cd /pci@f2000000/mac-io@17/ata-3@20000/disk@0 ok 0 >
Trovato: nel mio caso è usb1! A questo punto facciamo un test con il comando dir che lista il contenuto di un filesystem. Nella sintassi disk@3:3,\ dopo i due punti intendiamo la partizione che abbiamo identificato prima e dopo la virgola il percorso sul media!
0 > dir usb1/hub@1/disk@3:3,\ 0 > dir usb1/hub@1/disk@3:3,\ \ Size/ GMT File/Dir bytes date time TYPE CRTR Name 82 09/24/2007 00:45:14 ._Instructions 82 09/24/2007 00:45:14 ._Optional%20Installs 12292 10/12/2007 07:24:19 .DS_Store 10/12/2007 07:27:21 .fseventsd 10/12/2007 04:59:12 .HFS+%20Private%20Directory%20Data%0 d 09/24/2007 07:08:49 .vol 08/15/2007 19:18:56 Applications 10/12/2007 06:01:52 bin 09/23/2007 21:37:30 dev 11 10/12/2007 05:55:18 slnk rhap etc 09/24/2007 03:47:20 Install%20Mac%20OS%20X.app 10/12/2007 07:24:19 Instructions 10/12/2007 05:55:18 Library 10243756 10/10/2007 04:38:29 mach_kernel 10/12/2007 07:24:19 Optional%20Installs 10/12/2007 05:55:18 private 10/12/2007 06:01:16 sbin 10/12/2007 05:12:55 System 11 10/12/2007 05:55:19 slnk rhap tmp 10/12/2007 05:12:55 usr 11 10/12/2007 05:55:19 slnk rhap var 09/24/2007 07:08:49 Volumes 01/01/1904 00:00:00 HFS+%20Private%20Data ok 0 >
Abbiamo visto che OpenFirmware è riuscito a leggere il filesystem della periferica e quindi potrà avviare un loader da esso! Lo stesso procedimento va bene per qualsiasi altra periferica... in questo caso è il DVD di installazione di Mac OSX Leopard, facciamolo avviare:
0 > boot usb1/hub@1/disk@3:3,\System\Library\CoreServices\Bootx 0 > boot usb1/hub@1/disk@3:3,\System\Library\CoreServices\Bootx load-size=2a8c4 adler32=86b8074c parsing <CHRP-BOOT> evaluating <BOOT-SCRIPT>
Voilà ;)
Adesso che ho installato Leopard mi serve installare Ubuntu/PPC, quindi inserito il CD di installazione vediamo stavolta su quale partizione sta il filesystem che ci interessa!
$ mount /dev/disk2s2 on /Volumes/Ubuntu_PowerPC_karmic (hfs, local, nodev, nosuid, read-only, noowners)
stavolta sta sulla partizione numero 2, stesso procedimento: diamo un'occhiata al filesystem
0 > dir usb1/hub@1/disk@3:2,\ Ubuntu_PowerPC_karmic Size/ GMT File/Dir bytes date time TYPE CRTR Name 01/01/1904 00:00:00 .disk 01/01/1904 00:00:00 casper 01/01/1904 00:00:00 dists 01/01/1904 00:00:00 etc 01/01/1904 00:00:00 *install 4047 10/27/2009 22:01:10 ???? ???? md5sum.txt 01/01/1904 00:00:00 pics 01/01/1904 00:00:00 pool 01/01/1904 00:00:00 ppc 01/01/1904 00:00:00 preseed 231 10/27/2009 22:00:55 ???? ???? README.diskdefines ok 0 >
Perfetto, riesce a leggerlo... avviamolo:
0 > boot usb1/hub@1/disk@3:2,\install\yaboot Welcome to Ubuntu 9.10 (Karmic Koala)! This is an Ubuntu live CDROM, built on 20091027.2. The default option is 'live'. If the system fails to boot at all (the typical symptom is a white screen which doesn't go away), use 'live video=ofonly'. Press the tab key for a list of options, or type 'help' for help. ************************************ If in doubt, just press Enter, and if that doesn't work, type 'live video=ofonly'. ************************************ Welcome to yaboot version 1.3.13 Enter "help" to get some basic usage information boot: live Please wait, loading kernel... Elf32 kernel loaded... Loading ramdisk... ramdisk loaded at 01c00000, size: 5332 Kbytes OF stdout device is: /packages/telnet Preparing to boot Linux version 2.6.31-14-powerpc (buildd@adare) (gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu8) ) #48-Ubuntu Fri Oct 16 14:11:44 UTC 2009 (Ubuntu 2.6.31-14.48-powerpc) command line: memory layout at init: alloc_bottom : 02136000 alloc_top : 20000000 alloc_top_hi : 20000000 rmo_top : 20000000 ram_top : 20000000 found display : /pci@f0000000/NVDA,Parent@10/NVDA,Display-A@0, opening... done
Certamente non è una cosa velocissima ed intuitiva, ma in caso di emergenza/necessità è così che si fa ;)
'njoy ;)
Grazie a questo interessante link ho potuto telnettarmi all'openfirmware del mio powerbook da un'altra macchina per poter copiare ed incollare l'output dei comandi!
