NetBSD/macppc パーティショニング HOW-TO
この文書は、 4 個の部分に分かれています:
- はじめに (パーティションについて理解する)
- ディスクのパーティショニング
- Drive Setup を使ったパーティショニング (Mac OS 9)
- Disk Utility を使ったパーティショニング (Mac OS X)
-
pdisk
とnewfs
を使ったパーティショニング (Mac OS 9, Mac OS X, Darwin, NetBSD, Linux)
- 共有 MS-DOS ファイルシステムの作成
- パーティション命名規則
注意: Linux の pdisk
コマンドは、 NetBSD/macppc 用のフラグを
適切に設定しません。ディスクが Linux の pdisk
を使って
パーティション分割済みの場合は、 NetBSD の pdisk
を使い、パーティションを消してから
NetBSD のルートおよびスワップパーティションを作り直す必要があります。
この文書では、 NetBSD/macppc と Mac OS を使うためにディスクを分割する 方法を詳しく説明します。お使いのマシンのあるディスクから あるオペレーティングシステムをブートできるかどうかは、そのマシンの Open Firmware のバージョンに依ります。 全体としての目標は、 Open Firmware が理解することのでき (さらに、 そこからブートでき) 、かつ、 NetBSD カーネルが理解することができて ルートパーティションとして使うことができるような Apple Partition Map を作成することです。
4 個のディスク分割用のツールがあります: Apple の Drive Setup (Mac OS 9)、 Apple の Disk Utility (Mac OS X)、 NetBSD の pdisk(8) (全 OS)、そして、 NetBSD の disklabel(8) (NetBSD/macppc のみ) です。 最初の 2 個のツール (Drive Setup と Disk Utility) は Apple が Mac OS と共に配布しており、ブート可能な Mac OS インストール CD に含まれています。これらを使って、 ディスクのパーティション分割、ファイルシステム作成、 Mac OS ブートローダー (Mac OS 用語ではディスクドライバー) のインストールをすることができます。
pdisk
プログラムはコマンドラインプログラムで、ほとんどの
unix-like システム (特に、 PowerPC ベースの Macintosh や互換機で動くシステム)
上でコンパイルおよび実行することができます。このプログラムでできることは、
ディスクのパーティション分割だけです─ブートローダーのインストールや
ファイルシステムの作成をすることはできません。
NetBSD の disklabel
は、 NetBSD 方式の
disklabel(5) を作成します。上述の 3 種のツールとは異なり、
これでできることは、疑似的な Apple Partition Map の作成だけです (それゆえ、
この disklabel
を使って Mac OS がブート可能なディスクを作ることはできません)。
ですが、これで十分です。 Open Firmware の一部のバージョンでは、
ブートローダーをインストールするのに disklabel
を使う必要があります。
なお、 disklabel
は NetBSD インストーラーのパーティションツールとしても使われています。
以下の表で、 "yes" はそのディスクがブート可能であることを、 "mount only" は OS がディスク上のパーティションのマウントは可能だがそこからのブートはできないことを、 "no" は OS がパーティションのマウントもディスクからのブートもできないことを意味します。
Open Firmware 1.0.5 または 2.0.x:
OS | Drive Setup | Disk Utility | pdisk |
disklabel |
NetBSD | mount only | mount only | mount only | yes |
Mac OS 9 | yes | yes | no | no |
Mac OS X および Darwin | yes | yes | yes | no |
Linux | yes | yes? | yes | no |
Open Firmware 2.4 または 3:
OS | Drive Setup | Disk Utility | pdisk |
disklabel |
NetBSD | yes | yes | yes | no |
Mac OS 9 | yes | yes | no | no |
Mac OS X および Darwin | yes | yes | yes | no |
Linux | yes | yes? | yes | no |
Apple パーティションマップは、パーティション情報を、番号の付けられたリスト (通常はディスク上の場所の順序) の形で保持しています。最初のブートローダーが納まる パーティション "ゼロ" は Open Firmware 1.0.5 または 2.0.x の機種向けのものです。 パーティションマップ自体はパーティション番号 1 です。 Mac OS 9 の入ったディスクでは、 通常、パーティション 2 から 8 まではドライバー用に予約されています。 ユーザーが定義したパーティション (HFS、 HFS+、 UFS、 NetBSD などなど) は、 パーティション 9 (Mac OS 9 のディスク) または 2 (Mac OS 9 のないディスク) からになります。
マシンを NetBSD/macppc でブートさせるためのコマンドを決める際に、
Open Firmware は Apple パーティションマップの番号を使うことを留意しておいてください。
pdisk
を使うと、 Apple パーティションマップを、
(どの方法で作られたパーティションマップであっても) プリントアウトできます。
若干混乱を招いていますが、 NetBSD/macppc は、文字 'a' から 'h' という 独自のパーティション命名規則を使っています。ルートパーティションは、 (Apple パーティションマップの位置とは関係なく) パーティション 'a' になります。 スワップパーティションはパーティション 'b' です。パーティション 'c' は、 ディスク全体を表します。 '/usr' パーティションは (もしあれば) パーティション 'g' です。 それ以外のパーティションは、残りの文字が充てられます。
もっと筋道だった説明は、後述の パーティション命名規則の節を見てください。
あなたが取り扱う可能性のあるファイルシステムは、実に多岐にわたります。 簡単に説明しますと、 HFS は 80 年代から使われてきた Apple 旧来のファイルシステムです。 HFS+ (「拡張」ファイルシステムともいう) は HFS の拡張版で、より大きな容量の ファイル (やファイルシステム) を使うことができ、 unix 的なファイル所有者や パーミッションを持つことができます。 HFS+ は、 Mac OS > 8.1 (Mac OS X を含む) での推奨ファイルシステム型です。 UFS は、古き良き BSD FFS の、 NeXT 由来の Apple 版です。 MS-DOS (FAT ともいう) は、 MS-DOS/Windows プラットフォームで 標準化されているファイルシステムです。 BSD FFS は、 80 年代からほとんどの BSD unix-like OS (NetBSD も含む) で使われてきた標準的なファイルシステムです。 ext2fs は linux で最も一般的なファイルシステムです。
他の OS と共有するパーティションを用意するかどうか、 検討したい方もいるでしょう。もっとも互換性の高いフォーマットは MS-DOS FAT ですが、機能が足りません (パーミッションや、よい修復ツールなどです)。 残念ながら NetBSD は Macintosh HFS および HFS+ システムをネイティブでは まだサポートしていません。 NetBSD-current では Apple の UFS を完全にサポートしています。 以下に早見表を掲げます:
フォーマット | Mac OS 8.1-9.x | Mac OS X および Darwin | NetBSD | Linux |
Apple HFS | yes | yes | hfstools | yes(1) |
Apple HFS+ | yes | yes | no | read-only(2) |
Apple UFS | no | yes | -current | read-only |
MS-DOS FAT | File Exchange | yes | yes | yes |
BSD FFS | no | no | yes | read-only |
Linux ext2fs | no | yes(3) | yes | yes |
1 - 安定している hfsutils、 または 実験的なカーネルサポートを使用します。
2 - 実験的な hfsplus utils、 または実験的な linux-hfsplus カーネルモジュールを使用します。
3 - 非常に実験的な Ext2 Filesystem カーネル拡張を使用します。
Mac OS 9 と共有可能なパーティションを作りたければ、 HFS パーティションを作り、あとで MS-DOS フォーマットへ変換するのがよいです。 ディスクを分割してから共有 MS-DOS ファイルシステムの作成 を見てください。
Classic Mac OS のことは気にしないのであれば、おそらく UFS が最良の選択肢です。 Mac OS X か Darwin で UFS パーティションを作り、 -current NetBSD を使うようにするだけです。 UFS は次の NetBSD メジャーリリースではサポートされる予定です (つまり 1.6.x 枝ではサポートされません)。
パーティショニングは、ドライブの内容を消去しますので、 分割しようとするディスクをすべてバックアップしてください。 あなたが使おうとしているツールの説明に従ってください。
- Drive Setup を使ったパーティショニング (Mac OS 9)
- Disk Utility を使ったパーティショニング (Mac OS X)
-
pdisk
とnewfs
を使ったパーティショニング (Mac OS 9, Mac OS X, Darwin, NetBSD, Linux) -
disklabel(8)
は、 NetBSD 6.0.1 インストールノートのやり方に従うと、sysinst
インストーラーが作成します。
-
Drive Setup はバージョン 1.8.1 以降が必要です。このバージョンは Mac OS 9.0 に附属のバージョンです。バージョンがわからない場合は、 (訳註: Finder で) Drive Setup を選び、
File
メニューからGet Info
します。古いバージョンの Mac OS をお使いの場合、 Mac OS 9.0.4 (12.2 MB)、 Mac OS 9.1 (71 MB)、 Mac OS 9.2.1 (82 MB)、または Mac OS 9.2.2 (21.3 MB) アップデートをダウンロードできます。 これらには、使えるバージョンの Drive Setup が含まれています。 これらは大きな Mac OS アップデートであり、 500 KB の Drive Setup アプリケーションの入手のために、メガバイト級のディスクイメージを ダウンロードする必要があることに注意してください。 Apple は、最近のバージョンの Drive Setup を単体では提供していません。
また、 Darwin インストーラーにも、使えるバージョンの Drive Setup が含まれます。 オペレーティングシステム一式を含んでいるため、 Darwin も巨大 (120.7 MB) です。
ディスクイメージを開き、 Drive Setup をハードドライブ、 RAM ディスク、 Zip ディスク、フロッピーディスク等にコピーします (Drive Setup はディスクイメージからは実行できません) 。
-
Drive Setup を最初に走らせると、次のような画面が出ます。 ここで、再分割しようとするドライブを選びます。
再分割するドライブを選び、
Initialize...
ボタンをクリックします。 すると別のダイアログが出ます。Custom Setup...
ボタンをクリックします。 -
使う予定のパーティションの数を選びます。おそらく、少なくとも 5 パーティションは必要でしょう。インストールノートの提示を参照してください。
パーティション数を変えると、
Volumes
の情報はすべて消えるので、 まず最初にPartitioning Scheme
を選んでください。 -
各
Volumes
ごとに、Volume Info
にあるType:
とSize:
を、インストールノートに提示されているように設定します。Volumes
の移動にはTAB
キーが使えます。 -
設定が済むと、次のようになるはずです (Mac OS パーティション名は、 後ほど Finder から設定します):
-
OK
ボタンをクリックします。すると、 変更について確認を求めてきます。ここまでくると、やり直せません ! ここで、確認に同意すると、 ドライブの内容はすべて消去されます
-
パーティショニングと HFS(+) パーティションの作成が済むと、 最初の画面に戻ります。
注意:
A/UX
パーティションは Mac OS からはアクセスできません。 -
Drive Setup での作業は完了し、 Drive Setup を終了できます。 これで、 Finder から、 HFS(+) パーティションの名前を変更できます。 Open Firmware 1.0.5 または 2.0.x の機種では、これで完了です─ インストールノートに従い、作業を続けてください。
Open Firmware 2.4 または 3 の機種では、ディスクを NetBSD ブート可能に するために、もう一段階必要です。
ofwboot.xcf
(ブートローダー) と、netbsd.GENERIC_MD.gz
またはnetbsd.ram.gz
(インストーラー) を、 HFS(+) パーティションの ひとつにコピーする必要があります。これらのファイルはバイナリー
モードでダウンロードしてあることを確認しておいてください。
Mac OS X の Disk Utility プログラムは NetBSD パーティションを直接作ることは できませんが、最終的に NetBSD パーティションを作る方法はあります。 Disk Utility の利点は、 Mac OS X インストール CD から利用可能なことです。 Disk Utility が作成可能なのは、 "Mac OS Extended" (HFS+)、 "Mac OS Standard" (HFS)、 "UNIX File System" (UFS) および "Free Space" パーティションのみです。
NetBSD/macppc -current カーネルは UFS パーティションを使うことができ、 ルートパーティションであっても使うことができます。現状、通常の NetBSD A/UX-形式で利用可能なパーティションが存在しない場合に、 NetBSD/macppc は UFS パーティションがルートであるとの仮定をするようにはなっていません。 NetBSD に、どのパーティション (たとえば "e") が UFS であるとみなすかを 教えてやる必要や、ルートデバイスが UFS であることを指定したカーネルを作る必要があるかもしれません。
これでは足りないという場合、 Disk Utility で Mac OS HFS+ を作り、
NetBSD 用に free space を残しておくという使い方ができます。
あとは pdisk
を使って NetBSD
パーティションを作る必要があります。
-
Disk Utility を起動します。インストール CD から使う場合は "Install" メニューにあります。 Mac OS X から使う場合は /Applications/Utilities/Disk Utility を開きます。
-
ここで認証が必要かもしれません。ウィンドウ左下で "Click the lock to make changes." といわれた場合は、錠前をクリックしてパスワードを入力します (管理者用のアカウントを使っていますよね?)。
-
左側のパネルで、ディスクを選びます。 "Partition" タブを クリックします。 "Volume Scheme" (つまり、必要なパーティション数) を選びます。
-
パーティションの名前、フォーマットとサイズを設定します。ヒント: 推奨より小さいパーティションを作るには、サイズ欄に数字を入れ、それを パーティションサイズにするため enter キーを押します。 "Mac OS Extended" HFS+ パーティションの最小サイズは 4 MB です。例えば、筆者の 2 パーティションの ディスク (
ofwboot.xcf
用の小さい HFS パーティションと NetBSD 用の大きな UFS パーティション) では、このようになります: -
Mac OS 9 のディスクドライバーをどこにインストールするか選択します。 今後 Mac OS 9 かそれより前から、このディスクのパーティションのどれかへ アクセスするつもりがある場合、これが唯一の機会です。ここでボタンをクリック しなかった場合、 Mac OS 9 からは HFS パーティションにすらアクセスできなくなります。
-
OK をクリックして先へ進みます。
-
これで Disk Utility 抜けて結構です。作業は終わりました。これで、 Finder から HFS(+) や UFS パーティションの名前を変えられます。 Open Firmware 1.0.5 または 2.0.x の機種の場合、これで完了です─ INSTALL ノートに従って 作業を続けてください。
Open Firmware 2.4 または 3 の機種で、このディスクを NetBSD のブートに 使えるようにする場合は、さらに以下の手順を踏む必要があります。
ofwboot.xcf
(NetBSD 用のブートローダー) を、ドライブの HFS(+) パーティションのひとつにコピーする必要があります。netbsd.GENERIC_MD.gz
を UFS パーティションにコピーします (これは HFS(+) パーティションに置いておくこともできますが)。これらのファイルはバイナリー
モードでダウンロードしてあることを確認しておいてください。UFS をルートパーティションに使うために -current カーネルが必要であること、 NetBSD がこのパーティションをパーティション "a" であると認識しない可能性があることに注意してください。
コマンドラインの pdisk
ユーティリティーは、ディスク上の Apple
パーティションマップの閲覧と修正に使われます。 NetBSD、 Mac OS X、 Darwin
はいずれも、 pdisk
でパーティション分割されたディスクをマウント可能です。
Mac OS 9 およびそれ以前は、これをマウントするには特別なドライバーのインストールが
必要です (Drive Setup と Disk
Utility 参照)。 pdisk
は、 Open Firmware 2.4 または 3 の機種で
NetBSD、 Mac OS X、 Darwin のブート可能なパーティションマップを作成可能です。
さらに、 pdisk
は別のユーティリティーで作ったパーティションマップの修正や、
単にディスクのパーティションマップのリストを見るためにも使えることがおわかりでしょう。
ディスクのパーティションマップのリストを見たいだけの場合は、
1 から 4 までの手順に従ってください。
始める前に、パーティショニングに関していくらか警告しておきます:
-
(Mac OS ユーティリティーで作ったパーティションマップを単に修正するのではなく) パーティションマップを
pdisk
で一から作った場合、このディスク上の パーティションは Mac OS 9 およびそれ以前からはアクセスできなくなります。 -
Mac OS X、 Darwin や Linux のネイティブな
pdisk
では、 NetBSD A/UX-形式のパーティションを作ることはできません。 -
Mac OS 9 の
pdisk
は、やや旧式のものであり、 以下の説明とは若干異なる動作をすることがありますが、それでも使用可能です。 -
Mac OS X および Darwin では、使用中のドライブに
pdisk
パーティションマップを書き込むことができません。つまり、ブートドライブの 分割し直しはできないということです。別のディスクからブートして作業してください (または、 BootCD 等のツールでブート可能な CD を作ってください)。
pdisk
によってリストされるパーティション番号は、 Open Firmware
が使っているものと同じものです。 Open Firmware 2.4 または 3 の機種で
ディスクをブート可能にしようとする場合は、 Apple_HFS
パーティションに ofwboot.xcf
を置くことと、 Apple_UNIX_SVR2
または Apple_UFS
パーティションを NetBSD
ルートパーティションにすることを忘れないでください。
-
pdisk
を入手する。-
NetBSD -current では、
/sbin/pdisk
-
NetBSD 1.6.x では、 ftp://ftp.NetBSD.org/pub/NetBSD/arch/macppc/netbsd-pdisk/netbsd-pdisk.macppc-1-6
# chmod 755 netbsd-pdisk.macppc-1-6
-
Mac OS X 10.2.5 (Mac OS X 10.1.5 でも動作することがわかっています) では、 ftp://ftp.NetBSD.org/pub/NetBSD/arch/macppc/netbsd-pdisk/netbsd-pdisk.macos-10-2
# chmod 755 netbsd-pdisk.macos-10-2
-
Mac OS 9 では、 ftp://ftp.NetBSD.org/pub/NetBSD/arch/macppc/macos-utils/pdisk.sea.hqx
アーカイブを伸長し、
pdisk ppc
を実行する -
それ以外 (Mac OS X、 Darwin、 Linux) では、 ftp://ftp.NetBSD.org/pub/NetBSD/arch/macppc/netbsd-pdisk/netbsd-pdisk.src.20030424.tgz
# tar xzf netbsd-pdisk.src.20030424.tgz # make
-
-
閲覧またはパーティション再分割しようとしているディスクのデバイス名を 調べます。パーティション再分割する場合は、そのディスクのマウントされている パーティションはすべてアンマウントします。
-
NetBSD:
# dmesg | grep \[sw\]d\[0-9\] # umount /mountpoint
-
Mac OS 9:
ディスクのアイコンをゴミ箱に捨てます。
pdisk ppc
を開き、L
をタイプしてディスク、その偽名、 パーティションを列挙させます -
Mac OS X および Darwin:
# /usr/sbin/diskutil list # /usr/sbin/disktool -u disk2
-
Linux:
# dmesg | grep \[hs\]d\[a-g\] # umount /mountpoint
-
-
pdisk /dev/disk-device
を実行します。ここで disk-device は以下のようになります:- NetBSD では
/dev/sd2c
("c
" パーティションを使用) - Mac OS X および Darwin では
/dev/disk2
(パーティション名は指定しない) - Linux では
/dev/hdc
(パーティション名は指定しない)
# ./pdisk /dev/disk2 Edit /dev/disk2 - Command (? for help): ? Notes: Base and length fields are blocks, which vary in size between media. The base field can be <nth>p; i.e. use the base of the nth partition. The length field can be a length followed by k, m, g or t to indicate kilo, mega, giga, or tera bytes; also the length can be <nth>p; i.e. use the length of the nth partition. The name of a partition is descriptive text. Commands are: C (create with type also specified) c create new partition (standard unix root) d delete a partition h help i initialize partition map n (re)name a partition P (print ordered by base address) p print the partition table q quit editing r reorder partition entry in map s change size of partition map t change a partition's type w write the partition table
- NetBSD では
-
作業対象のディスクが正しいか、再確認します。 Apple パーティションマップがすでにあれば、大丈夫なはずです。
Command (? for help): P Partition map (with 512 byte blocks) on '/dev/disk0' #: type name length base ( size ) 1: Apple_partition_map Apple 63 @ 1 2: Apple_Driver43*Macintosh 56 @ 64 3: Apple_Driver43*Macintosh 56 @ 120 4: Apple_Driver_ATA*Macintosh 56 @ 176 5: Apple_Driver_ATA*Macintosh 56 @ 232 6: Apple_FWDriver Macintosh 512 @ 288 7: Apple_Driver_IOKit Macintosh 512 @ 800 8: Apple_Patches Patch Partition 512 @ 1312 9: Apple_Free 192 @ 1824 10: Apple_UFS shared 1700000 @ 2016 (830.1M) 11: Apple_HFS macos 408788 @ 1702016 (199.6M) 12: Apple_Free 8 @ 2110804 Device block size=512, Number of Blocks=2110812 (1.0G) DeviceType=0x0, DeviceId=0x0 Drivers- 1: 23 @ 64, type=0x1 2: 36 @ 120, type=0xffff 3: 21 @ 176, type=0x701 4: 34 @ 232, type=0xf8ff
もし Apple パーティションマップ (APM) がなければ、エラーが出ますし、 新しいパーティションを作る前に APM の初期化が必要です。
Command (? for help): P No partition map exists Command (? for help): i read failed Command (? for help): P Partition map (with 512 byte blocks) on '/dev/rdisk2' #: type name length base ( size ) 1: Apple_partition_map Apple 63 @ 1 2: Apple_Free Extra 2110749 @ 64 (1.0G) Device block size=512, Number of Blocks=2110812 (1.0G) DeviceType=0x0, DeviceId=0x0
-
未使用パーティションを削除し、新しいパーティションを作ります。
Apple_Free
パーティションは、自動的に未使用領域に計上されますので、 削除する必要はありません。P
コマンドでパーティションの一覧を表示し、 正しくパーティションを削除したか確認します。Command (? for help): d Partition number: 9
作成される有用なパーティション型には、以下のようなものがあります:
Apple_HFS
HFS および HFS+ パーティション (共有 MS-DOS パーティションもこれ) Apple_UFS
UFS パーティション Apple_UNIX_SVR2
NetBSD および Linux 用の A/UX-形式パーティション Command (? for help): C First block: 2p Length in blocks: 100m Name of partition: Zathras Type of partition: Apple_HFS Command (? for help): C First block: 3p Length in blocks: 800m Name of partition: netbsd Type of partition: Apple_UNIX_SVR2 Available partition slices for Apple_UNIX_SVR2: a root partition b swap partition c do not set any bzb bits g user partition Other lettered values will create user partitions Select a slice for default bzb values: a Command (? for help): C First block: 4p Length in blocks: 4p Name of partition: swap Type of partition: Apple_UNIX_SVR2 Available partition slices for Apple_UNIX_SVR2: a root partition b swap partition c do not set any bzb bits g user partition Other lettered values will create user partitions Select a slice for default bzb values: b Command (? for help): P Partition map (with 512 byte blocks) on '/dev/rdisk0' #: type name length base ( size ) 1: Apple_partition_map Apple 63 @ 1 2: Apple_HFS Zathras 204800 @ 64 (100.0M) 3: Apple_UNIX_SVR2 netbsd 1638400 @ 204864 (900.0M) S0 RUFS k0 / 4: Apple_UNIX_SVR2 swap 267548 @ 1843264 (130.6M) S1 SFS k0 (swap) Device block size=512, Number of Blocks=2110812 (1.0G) DeviceType=0x0, DeviceId=0x0
-
新しいパーティションを書き出し、 pdisk を終了します。
Command (? for help): w Writing the map destroys what was there before. Is that okay? [n/y]: y Command (? for help): q
-
新しいファイルシステムを作ります。
-
NetBSD は、ルートおよびユーザーパーティションとして固有のファイルシステム (FFS) しか作ることができません。 UFS、 HFS、 HFS+ や、フロッピーサイズ以外の MS-DOS ファイルシステムを直接作ることはできません。 HFS ファイルシステムの作成には hfstools を使うことができます。
# newfs /dev/sd2a # hformat /dev/sd2e
-
Mac OS 9 は、リブートすると HFS と HFS+ ファイルシステムの作成を要求してきます。 リブート後、 OS は新しいパーティションマップを認知し、このパーティションに ファイルシステムがないことを警告して、ファイルシステムを作るよう求めてきます。 共有 MS-DOS パーティションのフォーマット方法は、 共有 MS-DOS ファイルシステムの作成 を見てください。
-
Mac OS X および Darwin は、 UFS、 HFS+ および HFS パーティションを作ることができます。 NetBSD FFS やフロッピーサイズ以外の MS-DOS ファイルシステムをコマンドラインユーティリティーを使って 作ることはできません。 Mac OS 8.0 やそれ以前を使うことを考えない限り、 (拡張ではない通常の) HFS パーティションは必要ないはずです。
# newfs_hfs /dev/disk2s2
(for HFS+)
# newfs /dev/disk2s5
(for UFS)
-
Linux は、ルート用の Linux 固有のファイルシステム (ext2fs)、スワップ、 ユーザーパーティションおよび MS-DOS ファイルシステムを作ることしかできません。 UFS、 HFS および HFS+ を直接作ることはできません。 HFS ファイルシステムは、 hfstools を使って作ることができます。
# mkfs -t ext2 /dev/hdc2 # mkdosfs /dev/hdc3 # hformat /dev/hdc5
-
-
新しいファイルシステムをマウントします。
-
NetBSD (FFS でも UFS でも同じコマンドを使います):
# mount /dev/sd2a /mnt # hmount /dev/sd2e
(virtual mount)
-
Mac OS X および Darwin:
# /sbin/autodiskmount -v ** /dev/rdisk2s2 FILESYSTEM CLEAN; SKIPPING CHECKS ** /dev/rdisk2s5 QUICKCHECK ONLY; FILESYSTEM CLEAN Mounted ufs /dev/disk0s5 on /Volumes/untitled DiskDev Type FileSys Fixed Write Volume Name Mounted On disk2s2 ??? hfs yes yes untitled /Volumes/untitled disk2s5 ??? ufs yes yes untitled /Volumes/untitled 1 disk0s10 ??? hfs yes yes OSX /
-
Linux:
# mount -t ufs -o ufstype=44bsd,ro /dev/hdc1 /mnt/netbsd
(BSD FFS)
# mount -t ufs -o ufstype=openstep,ro /dev/hdc2 /mnt/macosx
(OSX UFS)
# hmount /dev/hdc3
(hfsutils の仮想的な mount)
# mount -t hfs /dev/hdc3 /mnt/macos
(実験的なカーネル内 HFS)
# hpmount /dev/hdc4
(hfsplus utils の仮想的な mount)
# mount -t hfsplus -o ro /dev/hdc4 /mnt/macosx
(実験的なカーネル内 HFS+)
# mount -t ext2 /dev/hdc5 /mnt/linux
(linux ext2fs)
-
-
Open Firmware 1.0.5 または 2.0.x の機種では、
netbsd.GENERIC_MD.gz
(インストーラー) を FFS または UFS パーティションにコピーしておくとよいでしょう。このファイルのダウンロードはバイナリー
モードでダウンロードしてあることを確認しておいてください。 ブートするためにはさらにofwboot.xcf
を別のところからロードする必要があります。Open Firmware 2.4 または 3 の機種で、このディスクから NetBSD がブート可能なようにするためには、
ofwboot.xcf
(ブートローダー) をHFS(+) パーティションのひとつにコピーする必要があります。 NetBSD から行なうにはhcopy
コマンドを使います。netbsd.GENERIC_MD.gz
(インストーラー) を FFS または UFS パーティションにコピーします (これは HFS(+) パーティションに置いておくこともできますが)。これらのファイルはバイナリー
モードでダウンロードしてあることを確認しておいてください。UFS をルートパーティションに使うために -current カーネルが必要であること、 NetBSD がこのパーティションをパーティション "a" であると認識しない可能性があることに注意してください。
すべての OS で利用可能な、 MS-DOS フォーマットのパーティションを作ることができます。
古い Mac OS ではこれを自動的にマウントしますし、
unix-like OS (NetBSD、 Linux、 Darwin、 Mac OS X) では
mount_msdos
コマンドを使ってマウントできます。
以下に、最も素直な方法の手順を概説します。
-
ハードドライブのパーティションを切り、 MS-DOS 用に HFS パーティション (type
Apple_HFS
) を確保しておきます。 -
次に、 Mac OS 8.1-9.x をブートし、 Disk Charmer または DiskCharmer を入手し、 MS-DOS ファイルシステムを作るよう設定します。 設定画面は次のようになるはずです:
-
パーティションを DiskCharmer のウィンドウ上にドラッグします。すると、 最初に作った HFS パーティションを消去し、そこに MS-DOS ファイルシステムを 作る前に、プロンプトが出ます。
-
これで、古い Mac OS をブートしたら、このパーティションが PC Exchange または File Exchange (これの呼び名は Mac OS のバージョンによります) によって自動的にマウントされるようになりました。
Mac OS X、 Linux や NetBSD をブートしたときは、次のコマンドを実行します:
mkdir -p /msdos.filesystem;/sbin/mount_msdos -m 777 /dev/disk0s11 /msdos.filesystem
ここで
/msdos.filesystem
はあなたが決めたマウントポイント、/dev/disk0s11
はそのパーティションのデバイス名です。あるいは、 NetBSD や Linux では、/etc/fstab
に項目を追加して、 このファイルシステムがいつもマウントされるようにもできます。 -
Mac OS X や Darwin で MS-DOS ファイルシステムを自動的にマウントする ためには、 System Startup ファイル群を作成する必要があります。 SystemStarter HOWTO が、スタートアップファイル群の作成方法を学ぶうえでのよい参考資料と なるでしょう。
autodiskmount
を使った方法もおそらくあるのでしょうが、 ここで説明する方法でうまくいきます。唯一の欠点は、 MS-DOS ファイルシステムが Classic 環境では扱えないことです。 以下に例を示します:-
# mkdir -p /Library/StartupItems/MountMSDOS
-
以下の内容を持つファイル
/Library/StartupItems/MountMSDOS/StartupParameters.plist
を作成します:{ Description = "Mount MSDOS partitions"; Provides = ("Manual MSDOS partitions"); Requires = ("Disks"); OrderPreference = "None"; Messages = { start = "Mounting MSDOS partitions"; stop = "Unmounting MSDOS partitions"; }; }
-
以下の内容を持つファイル
/Library/StartupItems/MountMSDOS/MountMSDOS
を作成します:#!/bin/sh . /etc/rc.common ## # Manually mount HFS partition with MS-DOS filesystem ## ConsoleMessage "Mount MS-DOS partitions" ## # Mount your filesystems manually. ## mount_msdos /dev/disk0s11 /Volumes/Thingies
-
# chown -R root /Library/StartupItems/MountMSDOS # chmod a+rx /Library/StartupItems/MountMSDOS/MountMSDOS
-
NetBSD/macppc を使うときに、あなたが関わるであろうパーティション特定方式は 三種類あります。各方式は、ディスク上のパーティション位置は変わらないにもかかわらず、 異なるやり方でパーティションの順序を変えます。 方式によっては、一部のパーティションを隠します。
-
ディスク上の実際の順序 (0 から最大のパーティション番号まで):
これは、 Open Firmware や、 Mac OS X と Darwin の
/dev/diskXsY
デバイスファイルが使っている方式です。パーティションの順序は、 Drive Setup や pdisk や NetBSD のパーティショニングツールにおける順序 そのままです。この方式によるパーティション一覧は、各 OS で pdisk を使ってプリントアウトできます。0 最初の段階のブートローダーのために予約された、特別な "パーティション"。 1 Apple パーティションマップ。 2 から ~8 Mac OS のツールでフォーマットされたドライブでは、 Mac OS 9 ドライバー のために予約されている。そうでない場合は、ユーザーが作ったパーティション。 ~9 から ~15 ユーザーが作ったパーティション、 配置はディスクの物理的な位置の順。 -
Mac OS で見えるパーティション (Finder 上のパーティション名による):
Drive Setup でパーティションの群を作ったかもしれませんが、 この Mac OS で見えるパーティションだけが Finder で表示されます。
Mac OS 9 以前で見えるパーティションは、 HFS、 HFS+ または MS-DOS フォーマット でフォーマットされたものだけです。 Mac OS X 以降で見えるパーティションは、 HFS、 HFS+、 UFS および MS-DOS (NetBSD の 4.2BSD FFS では ありません) でフォーマットされたものだけです。
-
NetBSD で見えるパーティション (
disklabel
で見られるとおりの a から h までの文字):NetBSD は、自分が処理しやすいような形にパーティションを並べ替えます。
disklabel(8)
で得られるfstype
は、 Apple パーティションマップのフラグによっており、パーティション上の実際の ファイルシステム (NetBSD FFS、 Apple HFS や MS-DOS) によってはいません。 特に、 MS-DOS フォーマットのパーティションは、それが 共有 MS-DOS ファイルシステムの作成の方法で作られた場合、HFS
パーティションに見えます。a "A/UX Root" パーティション、ディスク上の順序とは無関係 b "A/UX Swap" パーティション、ディスク上の順序とは無関係 c ディスク全体 (最初のセクターから最後のセクターまで) d-f 最初のほうにある A/UX 以外のパーティション (普通はユーザー HFS(+) パーティション) g (作ってあれば) "A/UX User" パーティション、ディスク上の順序とは無関係 h さらにある A/UX 以外のパーティション (普通はユーザー HFS(+) パーティション)
そして、たとえば以下は PowerBook (FireWire) に Drive Setup で作成したものです:
Mac OS | OF/OSX | NetBSD | Comment | Apple Partition Map type | disklabel fstype |
0 | bootloader | ||||
1 | Partition map | Apple_partition_map Apple | unknown | ||
2 | Mac OS driver | Apple_Driver43*Macintosh | unknown | ||
3 | Mac OS driver | Apple_Driver43*Macintosh | unknown | ||
4 | Mac OS driver | Apple_Driver_ATA*Macintosh | unknown | ||
5 | Mac OS driver | Apple_Driver_ATA*Macintosh | unknown | ||
6 | Mac OS driver | Apple_FWDriver Macintosh | unknown | ||
7 | Mac OS driver | Apple_Driver_IOKit Macintosh | unknown | ||
8 | Mac OS driver | Apple_Patches Patch Partition | unknown | ||
Untitled | 9 | d | Mac OS 9 boot partition | Apple_HFS untitled | HFS |
Untitled 2 | 10 | e | Mac OS X boot partition | Apple_HFS untitled 2 | HFS |
Untitled 3 | 11 | f | MS-DOS shared partition | Apple_HFS untitled 3 | HFS |
12 | a | NetBSD boot partition | Apple_UNIX_SVR2 A/UX Root | 4.2BSD | |
13 | b | NetBSD swap | Apple_UNIX_SVR2 Swap | swap | |
14 | g | unused disk space | Apple_Free Extra | unknown | |
c | NetBSD whole disk | unused |
インストール後、 HFS パーティションのひとつである "Untitled" (
Open Firmware のパーティションは 9、 NetBSD のパーティションは d) に
ofwboot.xcf
が、 A/UX パーティションのひとつ (Open Firmware
のパーティションは 12、 NetBSD のパーティションは a) には NetBSD
カーネルがあり、ブートのためのコマンドは次のようになります:
boot hd:9,ofwboot.xcf hd:12
Back to NetBSD/macppc ポートのページ