【コラム】

OS X ハッキング!

59 知られざるコマンド「diskutil」

    海上 忍  [2003/07/18]

    New Beetleを購入するともれなくiPodをプレゼント、というキャンペーンが米国で実施されるとのこと。iPod欲しさに車を買う人はまずいないだろうが、カーステレオとiPodを連携させようという着眼点は素晴らしい。ハンドル近くに取り付けるリモコンを備えたiPodの車載機が発売されれば、筆者も迷わず購入するのだが……。

    さて今回は、OS X独自のディスク管理用コマンド「diskutil」について。v10.1までは目立たないコマンドだったが、v10.2(Jaguar)以降は多数のオプションが追加され、ディスクユーティリティ(Disk Utility.app)のCUI版とでも言うべき強力なコマンドへと進化した。ここでは、diskutilにあってディスクユーティリティにはない、という"裏ワザ"を紹介してみよう。

    ・ディスク/パーティション情報を調べる

    diskutilコマンドには、現在システムに認識されているディスク/パーティション情報を一覧する機能がある。この機能を利用するには、以下のようにオプションとして「list」を指定するだけでOK。ディスクユーティリティには表示されない、サイズが数十KBのドライバ格納用パーティションやディスク/パーティションのデバイス名(/dev/disk*)を調べたいときに有用だ。

    ○ディスク/パーティション情報を調べる

    % diskutil list

    ・ハイブリッドCD-ROMのISO9660側をマウントする

    現在のOS Xには、HFSとISO9660のハイブリッドCD-ROMをマウントするツールが存在しない。ハイブリッドCD-ROMを挿入すると、HFS側のみがマウントされてしまい、ISO9660側は無視されたままとなる。しかし、全体がISO9660のCD-ROMは問題なくマウントできることから分かるように、OS XはISO9660というファイルシステム自体には対応している。

    この問題を解決するには、diskutilコマンドを利用してCD-ROMのメディアを排出せずにHFSボリュームだけアンマウントし、適当なディレクトリへ手動でマウントする方法が有効だ。手順は以下のとおりで、diskutilコマンドを利用してISO9660ボリュームのデバイス名を調べたあと、メディアを排出せずにHFSボリュームをアンマウント、その後適当なディレクトリへmount_cd9660コマンドでマウント、といった順序でコマンドを実行すればOK。雑誌の付録などハイブリッドCD-ROMを多数抱えるユーザは、この手順を覚えておくと役立つはずだ。

    ○ハイブリッドCD-ROMのISO9660側をマウントする

    % diskutil list ←ISO9660ボリュームのデバイス名を調べる
    (中略)
    /dev/disk2

       #:                   type name               size      identifier
       0:    CD_partition_scheme                    *510.6 MB disk2
       1: Apple_partition_scheme                    420.6 MB  disk2s1
    (以下略)

    % diskutil unmount disk2s1s2 ←メディアを排出せずにHFSボリュームをアンマウント
    % mkdir /private/tmp/iso9660 ←マウント用の一時使用領域を確保
    % mount_cd9660 /dev/disk2s1 /private/tmp/iso9660 ←ISO9660ボリュームをマウント
    % open /tmp/private ←マウントポイントより1つ上位のディレクトリをFinderで開く

    なお、この方法でマウントしたCD-ROMは、ゴミ箱へドラッグ&ドロップする方法ではアンマウントできない。面倒でもumountコマンドを実行してISO9660ボリュームをアンマウントした後、diskutilコマンド(ejectオプションを使用)でメディアを排出しよう。

    ○手動でマウントしたボリュームを排出する

    % umount /dev/disk2s1
    % diskutil eject disk2

    ・ジャーナリング機能を有効にする

    v10.2.2以降のOS Xには、障害が発生したハードディスクの迅速な復旧を可能にする「ジャーナリング機能」が追加されたが、その機能を管理するためのGUIツールは用意されていない。標準のOS X(クライアント版)をサーバ版に見せかけると、ディスクユーティリティに有効/無効を切り替えるスイッチが現れるが、ソフトウェアアップデート実行時にはサーバ版として認識されてしまうなどの不都合も生じるため、diskutilコマンドを利用したほうがいいだろう。なお、ジャーナリング機能の詳細については、当コラムのバックナンバー(第36回)を御参照いただきたい。

    ○ジャーナリング機能を有効にする(管理者権限要)

    % sudo diskutil enableJournal /

    ○ジャーナリング機能を無効にする(管理者権限要)

    % sudo diskutil disableJournal /

    新着記事

    特設サイトの情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      マイナビニュースマガジン