Skip to main content.
Google custom search

NetBSD/macppc パーティショニング HOW-TO

文書の概要

この文書は、 4 個の部分に分かれています:

注意: 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)

  1. Drive Setup はバージョン 1.8.1 以降が必要です。このバージョンは Mac OS 9.0 に附属のバージョンです。バージョンがわからない場合は、 (訳註: Finder で) Drive Setup を選び、 File メニューから Get Info します。

    drive setup

    古いバージョンの 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 はディスクイメージからは実行できません) 。

  2. Drive Setup を最初に走らせると、次のような画面が出ます。 ここで、再分割しようとするドライブを選びます。

    select a drive

    再分割するドライブを選び、 Initialize... ボタンをクリックします。 すると別のダイアログが出ます。 Custom Setup... ボタンをクリックします。

    initialize
  3. 使う予定のパーティションの数を選びます。おそらく、少なくとも 5 パーティションは必要でしょう。インストールノートの提示を参照してください。

    custom setup

    パーティション数を変えると、 Volumes の情報はすべて消えるので、 まず最初に Partitioning Scheme を選んでください。

  4. Volumes ごとに、 Volume Info にある Type:Size: を、インストールノートに提示されているように設定します。

    custom type

    Volumes の移動には TAB キーが使えます。

  5. 設定が済むと、次のようになるはずです (Mac OS パーティション名は、 後ほど Finder から設定します):

    suggested layout
  6. OK ボタンをクリックします。すると、 変更について確認を求めてきます。

    ここまでくると、やり直せません ! ここで、確認に同意すると、 ドライブの内容はすべて消去されます

  7. パーティショニングと HFS(+) パーティションの作成が済むと、 最初の画面に戻ります。

    after partitioning

    注意: A/UX パーティションは Mac OS からはアクセスできません。

  8. 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(+) パーティションの ひとつにコピーする必要があります。これらのファイルは バイナリーモードでダウンロードしてあることを確認しておいてください。

Disk Utility を使ったパーティショニング (Mac OS X)

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 パーティションを作る必要があります。

  1. Disk Utility を起動します。インストール CD から使う場合は "Install" メニューにあります。 Mac OS X から使う場合は /Applications/Utilities/Disk Utility を開きます。

  2. ここで認証が必要かもしれません。ウィンドウ左下で "Click the lock to make changes." といわれた場合は、錠前をクリックしてパスワードを入力します (管理者用のアカウントを使っていますよね?)。

  3. 左側のパネルで、ディスクを選びます。 "Partition" タブを クリックします。 "Volume Scheme" (つまり、必要なパーティション数) を選びます。

  4. パーティションの名前、フォーマットとサイズを設定します。ヒント: 推奨より小さいパーティションを作るには、サイズ欄に数字を入れ、それを パーティションサイズにするため enter キーを押します。 "Mac OS Extended" HFS+ パーティションの最小サイズは 4 MB です。例えば、筆者の 2 パーティションの ディスク (ofwboot.xcf 用の小さい HFS パーティションと NetBSD 用の大きな UFS パーティション) では、このようになります:

    small HFS partition large NetBSD UFS partition
  5. Mac OS 9 のディスクドライバーをどこにインストールするか選択します。 今後 Mac OS 9 かそれより前から、このディスクのパーティションのどれかへ アクセスするつもりがある場合、これが唯一の機会です。ここでボタンをクリック しなかった場合、 Mac OS 9 からは HFS パーティションにすらアクセスできなくなります。

  6. OK をクリックして先へ進みます。

  7. これで 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" であると認識しない可能性があることに注意してください。

pdisknewfs を使ったパーティショニング (Mac OS 9, Mac OS X, Darwin, NetBSD, Linux)

コマンドラインの pdisk ユーティリティーは、ディスク上の Apple パーティションマップの閲覧と修正に使われます。 NetBSD、 Mac OS X、 Darwin はいずれも、 pdisk でパーティション分割されたディスクをマウント可能です。 Mac OS 9 およびそれ以前は、これをマウントするには特別なドライバーのインストールが 必要です (Drive SetupDisk 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 ルートパーティションにすることを忘れないでください。

  1. pdisk を入手する。

  2. 閲覧またはパーティション再分割しようとしているディスクのデバイス名を 調べます。パーティション再分割する場合は、そのディスクのマウントされている パーティションはすべてアンマウントします。

    • 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
  3. 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
  4. 作業対象のディスクが正しいか、再確認します。 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
  5. 未使用パーティションを削除し、新しいパーティションを作ります。 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
  6. 新しいパーティションを書き出し、 pdisk を終了します。

      Command (? for help): w
      Writing the map destroys what was there before. Is that okay? [n/y]: y
      Command (? for help): q
  7. 新しいファイルシステムを作ります。

    • 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
  8. 新しいファイルシステムをマウントします。

    • 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)

  9. 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" であると認識しない可能性があることに注意してください。

共有 MS-DOS ファイルシステムの作成

すべての OS で利用可能な、 MS-DOS フォーマットのパーティションを作ることができます。 古い Mac OS ではこれを自動的にマウントしますし、 unix-like OS (NetBSD、 Linux、 Darwin、 Mac OS X) では mount_msdos コマンドを使ってマウントできます。 以下に、最も素直な方法の手順を概説します。

  1. ハードドライブのパーティションを切り、 MS-DOS 用に HFS パーティション (type Apple_HFS) を確保しておきます。

  2. 次に、 Mac OS 8.1-9.x をブートし、 Disk Charmer または DiskCharmer を入手し、 MS-DOS ファイルシステムを作るよう設定します。 設定画面は次のようになるはずです:

    screenshot of DiskCharmer
  3. パーティションを DiskCharmer のウィンドウ上にドラッグします。すると、 最初に作った HFS パーティションを消去し、そこに MS-DOS ファイルシステムを 作る前に、プロンプトが出ます。

  4. これで、古い 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 に項目を追加して、 このファイルシステムがいつもマウントされるようにもできます。

  5. Mac OS X や Darwin で MS-DOS ファイルシステムを自動的にマウントする ためには、 System Startup ファイル群を作成する必要があります。 SystemStarter HOWTO が、スタートアップファイル群の作成方法を学ぶうえでのよい参考資料と なるでしょう。 autodiskmount を使った方法もおそらくあるのでしょうが、 ここで説明する方法でうまくいきます。唯一の欠点は、 MS-DOS ファイルシステムが Classic 環境では扱えないことです。 以下に例を示します:

    1. # mkdir -p /Library/StartupItems/MountMSDOS
    2. 以下の内容を持つファイル /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";
        };
      }
    3. 以下の内容を持つファイル /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
    4. # chown -R root /Library/StartupItems/MountMSDOS
      # chmod a+rx /Library/StartupItems/MountMSDOS/MountMSDOS

パーティション命名規則

NetBSD/macppc を使うときに、あなたが関わるであろうパーティション特定方式は 三種類あります。各方式は、ディスク上のパーティション位置は変わらないにもかかわらず、 異なるやり方でパーティションの順序を変えます。 方式によっては、一部のパーティションを隠します。

  1. ディスク上の実際の順序 (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 ユーザーが作ったパーティション、 配置はディスクの物理的な位置の順。
  2. 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 では ありません) でフォーマットされたものだけです。

  3. 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 ポートのページ