【コラム】

OS X ハッキング!

11 NetInfoデータベースのバックアップと復元

    海上 忍  [2002/03/15]

    最近、Macを買い足そうかと思案中。特にPowerMac G4(Dual 1GHz)には強く魅かれている。2MBのL3キャッシュとGeForce4 MXを搭載しているのだから、速くないわけがなかろう。だが、現在のメインマシンであるG4 Cubeの静粛性も捨て去り難く…。

    さて、今回はNetInfoデータベースをバックアップ/復元する方法を紹介したい。いくつかのコマンドを実行する際には管理者権限が要求されるため、OS Xのインストール後最初に登録したユーザ(またはシステム環境設定の「ユーザ」パネルで管理者権限を与えたユーザ)として作業に臨んでほしい。

    NetInfoデータベースのバックアップを行うときには、nidumpコマンドを利用する。OS Xのデフォルトではホスト名が「localhost」、ドメイン名が「local」に設定されているので、次のようにコマンドを実行すれば「local.nidump」というファイルに現時点のNetInfoデータベースの内容が書き出される。

    なお、このバックアップファイル(local.nidump)にはセキュリティ上重要な情報が含まれることを認識しておくべきだ。試しに「less local.nidump」とコマンドを実行して内容を閲覧してほしい。パスワードこそ暗号化されているものの、ユーザ名などのアカウント情報やネットワーク関連の情報がプレーンテキストとして書き出されていることを確認できるはず。OS Xのデフォルトでは一般ユーザにもnidumpコマンドを実行する権限が与えられているが、安全性の観点からは好ましくない"仕様"といえる(この話題は長くなるのでまた後日)。

    ○nidumpコマンドでNetInfoデータベースのバックアップを作成する
    % nidump -r / -t localhost/local > local.nidump

    手動でNetInfoデータベースをバックアップするもう1つの方法としては、先週の当コラム( http://pcweb.mycom.co.jp/column/osx/osx010.html )でも少し触れたが、cronが利用するシェルスクリプト「/etc/daily」を流用することが挙げられる。/etc/dailyは毎日午前3時15分に自動処理されるが、次のようにコマンドを実行すれば任意の時間に処理できる。この場合、バックアップファイル(local.nidump)は/var/backupディレクトリに作成されるので念のため。

    ○/etc/dailyを流用してNetInfoデータベースのバックアップを作成する(管理者権限要)
    % sudo sh /etc/daily

    バックアップファイルの復元が必要な状況としては、不用意にNetInfoデータベースに手を加え元の状態に戻せないとき、あるいは設定内容に問題がありシステムを起動できなくなったときが考えられる。NetInfoデータベースのキャッシュ(/var/db/netinfo/local.nidbディレクトリ)が破損しても新規作成されることは先週説明したとおりだが、バックアップファイルを復元する際には多少のUNIX的な知識を要求される。特に「cd」や「mv」といった基本的なコマンドに関する知識は必須だ。また、すべて管理者としての作業になるため、誤ってコマンドを実行すると最悪の場合システムを破壊することも。細心の注意を払って作業に臨んでほしい。

    なお、通常モード(マルチユーザモード)でOS XをブートするとNetInfoもあわせて起動されるため、NetInfoデータベースのバックアップファイルを復元できない。電源投入時に[command]-[s]を押し続けシングルユーザモードとしてOS Xをブートし、次に示すとおりにコマンドを実行しよう。

    ○NetInfoデータベースのバックアップファイルを復元する(シングルユーザモード時)
    # fsck -y ……「FILE SYSTEM WAS MODIFIED」と表示されなくなるまで繰り返す
    # mount -uw /
    # cd /var/db/netinfo
    # mv local.nidb local.bkup ……NetInfoデータベースのキャッシュを念のため保存
    # sh /System/Library/StartupItems/Network/Network
    # sh /System/Library/StartupItems/DirectoryServices/DirectoryServices
    # niload -d -r / / < /var/backup/local.nidump ……バックアップファイルを復元
    # reboot ……システムを再起動

    来週はいよいよNFSサーバの設定に進む予定……のつもりだったが、ホスト名とIPアドレスの対照表(hosts)をNetInfoデータベースに登録する方法について説明することにした。TCP/IPを利用した小規模LANの構築には欠かせない作業なので、もう少しお付き合い願いたい。

    バックナンバー
    http://pcweb.mycom.co.jp/column/osx.html

    新着記事

    特設サイトの情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

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