2011年6月25日土曜日

テキストファイルから指定した行範囲を抜き出すコマンド

テキストファイルである行からある行までを抜きだしたかった。
さらに、毎回コマンド打つのも面倒なので、ついでにシェルスクリプトを書くと便利。


やりたいことは、

  • #begin を含む行から #endを含む行までを抜き出したい

以下がそのコマンドになる。


input.dat から output.dat  #begin から #end までをコピーするコマンド
sed -n "/#begin/,/#end/p" input.dat output.dat
また、#begin を含む行から #N 行抜き出すと分かってるなら
grep -A#N '#begin' input.dat > output.dat
で抜き出せるはず。

2011年5月11日水曜日

共有フォルダ(samba)から移行アシスタンスでMacを復元

昨日、再起動かけたらMacのOSが起動しなくなりました。
(電源は入るがクルクルがずっと回っててそのうち電源が落ちる。)

ホントにTimeMachineで毎日バックアップとってて助かった。

と、思って
  • インストールディスクでOS再インストール
  • バックアップファイルを保存したフォルダをsambaで共有
  • ターミナルでdefaults write com.apple.systempreferences  TMShowUnsupportedNetworkVolumes 1 を入力して実行
  • 移行アシスタンス起動
したんですが、移行アシスタンスでTimeMachineのデータが見えない


これはきっと

Apple様にお布施をケチって

TimeMachineで共有フォルダを使ったからに違いない。


案の定、TimeMachineが共有フォルダのバックアップデータをマウントできてない。

なぜマウントできてないか冷静になって考えてみると
  • hostnameがバックアップデータを作ったときと全然ちがう。
なので、
  1. システム環境設定から共有を選択
  2. コンピュータ名をバックアップデータを作ったときのhostname
    (バックアップファイル名の一部になってる)に変更
これで、TimeMachineが共有フォルダのバックアップデータをマウントできるようになる。

あとは、再チャレンジ
  • 移行アシスタンス起動
  • しばらく待つ!
  • 共有フォルダ表示される!!
  • 適当に選択していく。
  • 転送を待つ。
    (私は無線しか使えないので表示では十数時間かかるらしい!)
で、復元完了。

バックアップってホント大事ですね。

そしてApple様にはちゃんとお布施をしましょう。


参考サイト:

2011年3月17日木曜日

MacのTimeMachineで共有フォルダ(samba)を使う

お金がなくてTimeCapsule買えないけど、USBでHDD接続するのはMacとして美しくない。
そこで、お金を書けずにバックアップは無線でスマートにしたいのでNASとかの共有フォルダを利用する方法を調べて試したので手順を書きます。ちなみに太字になってるのは自分がつまった所です。

追記(2011-07-18):手順を簡素化しました。 


参考サイト:

  1. バックアップファイルを保存したいフォルダをsambaで共有しておく
  2. ターミナルで
    defaults write com.apple.systempreferences  TMShowUnsupportedNetworkVolumes 1
     を入力して実行
  3. Macのコンピュータ名をメモ
    (林檎マークにある「このMacについて」から詳細情報を選択してソフトウェアの項目にある)
    (日本語で名前が付いてるなら日本語のままで。
    コマンド hostname するとローマ字で表示されるが、これだとうまくいかないかもしれない
  4. ネットワークに接続しているインターフェイスのMACアドレスをメモ
    (林檎マークにある「このMacについて」から詳細情報を選択してネットワークの項目にある)
    (コマンド ifconfig で調べてもいいが分かりにくいので)
  5. ディスクユーティリティからファイル→新規→空のディスクイメージを選択
  6. 名前の欄に Macのコンピュータ名_MACアドレス を入力
    (この規則通りでないとTimeMachineで認識されないので注意)
    Macアドレスは - 抜きで入力する
  7. ボリュームサイズは後で変更するのでそのまま
    追記(2011-07-18):ここでサイズ指定すれば楽だったので、使用するサイズを入力(64GBとか指定しても実際には数十MBくらいのファイルサイズになるので共有フォルダへの移動も心配ない)
    (以前書いたサイズ変更の手順が飛ばせます。)
  8. パーティションの欄でハードディスクを選択
  9. イメージフォーマットの欄でスペースバンドルディスクイメージを選択し、作成ボタンをクリック
  10. 作成したイメージファイルをsambaの共有フォルダに移動
  11. イメージファイルをクリックしてマウントする

  12. ディスクユーティリティからマウントしたイメージを選択して、上の方にある取り出すボタンをクリック
  13. イメージサイズを変更ボタンをクリックして、三角ボタンを押してパーティションとイメージのサイズを変更を選択
  14. 適当なサイズに変更して、サイズ変更ボタンをクリック
  15. ディスクユーティリティでイメージファイルのファイル名をクリックして、パーティションのタブをクリック
  16. サイズに適当に大きな値を入力した後、左側にある奴を最大サイズまで拡大して適用をクリック

  17. TimeMachineのディスクの選択でsambaで共有した奴を選択すればいい

  18. Macにログインした時に共有フォルダをマウントするには、システム環境設定→アカウントでログイン項目のタブから+ボタンで共有フォルダを追加しておけばいい
     (これをしておけばいちいちマウントしなくていいので便利)

    追記(2011-07-18)
    :TimeMachineで一度設定すれば、以降はバックアップ時に自動でマウントされるようなのでこの手順は不要。


2,3日使ってみた感想としては、非常にスマートで便利になりました。USBのケーブルささなくていいので実に美しく使えてます。特にMacBookAirはUSB端子貴重なのでおすすめです。

2011年2月4日金曜日

VirtualBoxでvmdkファイルが読み込めないとき

VirtualBoxを使ってるときにフリーズして強制シャットダウンしたら、
ゲストが起動しなくなってしまった。

いろいろ調べてhttp://www.unixmen.com/linux-tutorials/520-convert-vmware-to-vbox
を見て、vmdkファイルをいったんbinファイルに変換し、binファイルをvdiファイルに変換すると読み込めました。

使うコマンドは、

qemu-img convert system.vmdk system.bin
VBoxManage convertdd system.bin system.vdi
の2つ。
qemu-imgはaptでインストールしないといけない。

後は、出来上がったvdiファイルをストレージに指定すれば起動できるようになった。

VirtualBoxで仮想アプライアンスのインポートに失敗

VrtualBoxの仮想アプライアンスのインポートをする時に、なぜかインポートに失敗した。

そこで、環境設定をいじっていたら、

デフォルト仮想マシンフォルダを、マウントしてるパーティションのルートにしていたが、
ここにフォルダ作成して、そのフォルダを指定してやると読み込んでくれた。

つまり、
マウントしたパーティションのルートを
デフォルト仮想マシンフォルダに指定しない方がいい。
ということ。

それにしても、マウントしたパーティションのルートでも関係ないはずなのによくわからんです。