How-To: Совместная работа PS2Linux и HD advance (перевел с английского efokin) Предупреждение: Только не надо делать меня крайним, если у вас что-то не получается. Я написал это руководство, будучи не в своем уме1. А вопросы по проблемам сразу направляйте по адресу: tyrion@geek-squad.de Надеюсь также, что я не допустил слишком много синтаксических ошибок2 . Хочу поблагодарить пользователей: Tiraniddo, pixie2004 с форума PS2Linux и A. Church. Они сделали основную работу. Немного теории: Программа HD advance работает со своей собственной файловой системой. Она создает отдельный раздел диска (партицию) для каждой игры. Чтобы запустить Linux, надо его “установить” в один из этих «игровых» разделов. Единственный возможный вариант – это скопировать файлы Linux-а с компьютера на жесткий диск, уже отформатированный при помощи HD advance, так как не получится установить Linux на такую файловую систему, просто загрузившись с компакт-диска. Утилиты Linux-а FDisk или Disk-Druid не смогут работать с таким жестким диском. Используемые сокращения и примечания: PS2: это команды выполняемые в PS2Linux. PC: это команды выполняемые в Windows (с помощью терминала Start->Execute>”cmd”). 192.168.0.2: это IP адрес моего компьютера с Windows – поменяйте на свой адрес. 192.168.0.3: это IP адрес моей консоли – можете поменять его командой ifconfig (при загрузке с использованием Initrd3, изменения не сохранятся для последующих загрузок!) Иногда после изменения таблицы разделов диска, придется перезагрузиться, так как эти изменения не всегда подхватываются на лету. Не меняйте файл vmlinux на карте памяти после того, как выполните все шаги инструкции. Иначе PS2Linux просто перестанет загружаться. Инструкция 1. Скачайте архив http://achurch.org/ps2/ps2linux-boot-ntsc.tar.gz на свою консоль4 PS2: wget http://achurch.org/ps2/ps2linux-boot-ntsc.tar.gz 2. Распакуйте архив PS2: mkdir /root/rdl PS2: cd /root/rdl PS2: tar xvfz /root/ps2linux-boot-ntsc.tar.gz 3. Распакуйте образ с файловой системой (InitFS) и смонтируйте его PS2: gzip -d /root/rdl/initfs.gz PS2: mkdir /root/initfs PS2: mount -t ext2 /root/rdl/initfs /root/initfs -o loop Вероятно, автор применил не к месту идиому “out of my mind” (прим. переводчика). Похоже, что автор не носитель английского языка (прим. переводчика). 3 Имеется в виду ramdrive – создание раздела Linux-а в памяти. 4 Предполагается, что вы уже загрузились с компакт диска Linux и зашли root-ом. 1 2 4. Скопируйте файл с раскладкой клавиатуры US в каталог InitFS PS2: cp /usr/lib/kbd/keymaps/i386/qwerty/us.kmap.gz /root/initfs/usr/lib/kbd/keymaps/i386/qwerty/ 5. Отредактируйте файл /root/initfs/etc/sysconfig/keyboard, изменив параметр KEYMAP со значения jap106 на значение us 6. Отредактируйте файлы p2lboot.cnf и p2lboot.opt в каталоге /root/rdl для региона PAL, если это необходимо 7. Размонтируйте каталог InitFS и снова его запакуйте PS2: umount /root/initfs PS2: gzip -9 /root/rdl/initfs 8. Скопируйте все на карту памяти PS2: mount /mnt/mc00 PS2: cp /root/rdl/* /mnt/mc00 9. Создайте новый раздел с помощью утилиты fdisk в соответствие с таблицей, которую предоставил A. Church. PS2: fdisk –u /dev/hda Последовательно нажимаем следующие кнопки fdisk-а (после каждой <Enter>) PS2: n e Будет показан номер следующего свободного раздела, например 5, и по умолчанию подставится номер первого сектора PS2: <Enter> Теперь посмотрим в таблицу, которую предоставил A. Church: http://www.ehoba.net/ps2linux/[eng]linux-install.txt Новый раздел должен быть как минимум такого же размера5, как и оригинальный раздел PS2Linux. Введите размер раздела, обращая внимание на номер последнего сектора. PS2: +<Сектор-1> (например, чтобы сделать 2048 Мб, наберите +4194287) PS2: w 10. Отформатируйте новый раздел PS2: mke2fs /dev/hda5 11. Повторите шаги 9-10 и создайте раздел на 1024 Мб 12. Перезагрузитесь и выберите в меню RTE6 пункт Initrd 13. Смонтируйте все разделы и скопируйте все файлы на hda5. PS2: mkdir /mnt/hda1 PS2: mkdir /mnt/hda5 PS2: mkdir /mnt/hda6 PS2: mount –t ext2 /dev/hda1 /mnt/hda1 PS2: mount –t ext2 /dev/hda5 /mnt/hda5 PS2: mount –t ext2 /dev/hda6 /mnt/hda6 PS2: cp –a /mnt/hda1 /mnt/hda5 5 6 Исходная фраза на английском: «at least as big as…» Меню загрузочного диска (прим. переводчика) 14. Заархивируйте образ нового раздела целиком PS2: dd bs=4M if=/dev/hda5 | gzip -1 > /mnt/hda6/hda1.gz 15. Скопируйте файлы на свой компьютер. Я использовал Samba, но можно использовать и Netcat. a) Инструкция по использованию Samba: http://playstation2-linux.com/download/cfyc/HOWTO_setup_samba.html b) Инструкция по использованию Netcat: Скачайте прикрепленный файл по адресу http://www.governmentsecurity.org/forum/index.php?showtopic=677 на свой компьютер и распакуйте его. Добавьте каталог с файлом nc.exe в переменную PATH (перейдите в Start>Settings->Control Panel->System->Advanced->Environment Variables->Path и добавьте, например, “;d:/nc”) и выполните две команды: PC: nc -lp 32000 > hda1.gz PS2: nc 192.168.0.2 32000 < hda1.gz 16. Сконфигурируйте файловую систему HD advance (Все данные на вашем PS2 будут удалены!!!). PS2: ps2fdisk Создайте файловую систему с „o“ Создайте 4 новых раздела. Размер раздела должен быть кратным 128 Мб. Раздел 1: Linux, Примечание: / - это основной раздел Linux-а, должен быть такого же размера, как и раздел, образ которого был запакован на шаге 14 (hda5) Partition 2: swap, Примечание: swap – раздел для swap-а (128 Мб) Partition 3: Linux, Примечание: / - должен быть 4096 Мб 17. Отформатируйте новые разделы PS2: mke2fs /dev/hda1 PS2: mke2fs /dev/hda3 18. Скопируйте PS2Linux обратно на PS2 и распакуйте. PS2: mkdir /mnt/hda PS2: mount –t ext2 /dev/hda3 /mnt/hda PS2: cd /mnt/hda PS2: nc -lp 32000 > hda1.gz (Здесь, возможно, придется перезагрузиться, так как netcat не выходит после завершения работы. Не забудьте перемонтировать hda3) PC: nc 192.168.0.3 32000 < hda1.gz PS2: gzip –d hda1.gz PS2: mkdir /mnt/hda1 PS2: mkdir /mnt/vda PS2: mount –t ext2 /dev/hda1 /mnt/hda1 PS2: mount –t ext2 /mnt/hda/hda1 /mnt/vda -o loop PS2: cp –a /mnt/vda /mnt 19. Перезагрузитесь – на этом всё. Если суперблок7 отличается от физического размера, перезагрузитесь с Initrd и выполните команду: PS2: mke2fs -S /dev/hda1 PS2: e2fsck /dev/hda1 7 Имеется в виду superblock файловой системы (прим. переводчика)