ラベル Time Machine の投稿を表示しています。 すべての投稿を表示
ラベル Time Machine の投稿を表示しています。 すべての投稿を表示

2012-06-04

外付けHDDの特定パーティションのマウント/アンマウント・スクリプト

切っ掛けはアップルのサポートコミュニティ、Mac OS X v10.7 Lionでの論議;
で、「timeutil」コマンドを使えば、GUIの「Time Machine」の「今すぐバックアップを作成」を開ける事無く、CUIからのコマンドでバックアップを開始できると思えるようになった事だ。とりあえず最小のコマンド;
#! /bin/sh

# tmback: Manually execute "Time Machine Backup"
# 2012-05-04 by mNeji

echo "+ Script($0) start at `myDate` ++++++++++++++"
tmVol=`tmutil machinedirectory`
#echo "tmVol: ${tmVol};"
noVol=""
#echo "noVol: ${noVol};"

if [ "$tmVol" = "$noVol" ]; then
    echo "Please wakeup External HDD for Time Machine Backup, Try again!"
else
    echo "+ Time Machine Backu Up for `tmutil machinedirectory` "
    #echo "+ sudo tmutil uniquesize \`tmutil listbackups\` ---------------------"
    #sudo tmutil uniquesize `tmutil listbackups`
    echo "+ sudo tmutil startbackup --block  ---------------------------"
    sudo tmutil startbackup --block
    echo "+ sudo tmutil uniquesize \`tmutil listbackups\` ---------------------"
    sudo tmutil uniquesize `tmutil listbackups`
fi   
echo "+ Script($0) finish at `myDate` +++++++++++++"
echo
 で保存するようになった。かれこれ1ヶ月ほど安定的にバックアップがとれている。

問題は、手動でFinderを経由して外付けHDDの内の「Time Machine」のパーシションを起動する必要がある事だ。そこで、今回は『必要なパティション、$tmVol、をマウント/アンマウントするスクリプト』を作ろうと考えた。


手元の資料としては
であった。svensonさんの記事では「/Volumes/」でのパーティション名(partition name)もしくはヴォリューム名(volume name)とディバイス名(/dev/diskNsM)とを必要と読める。

でもユーザがFinderで認識してしているのは、あくまで「パーティション名(partition name)」なのだからと思い、「diskutil」を弄り回した。その結果;
  • 電源が入っている外付けのリストは「diskutil list」で確認できる。この中にパーティション名($NAME)があれば、次に進む。ここに無ければ電源の投入を注意する。
  • マウントの状況は「diskutil info $NAME」で判るが、直裁に「ls /Volumes」を取って、その中に$NAMEがあるかどうかで判定できる。
  • 具体的tmutilコマンドでは、パーティションはフルパス表現は不要の様子;
    • マウント: diskutil mount $NAME
    • アンマウント: diskutil umontDisk $NAME
      • 一部のアンマウントだけに止
      • めたければ、
      • 「umontDisk → umont」
とすれば善い事が判った。

そこでマウント用のHDDonと、アンマウント用のHDDoffとを作った;

マウント用のHDDon
#!/bin/bash

#
# usage: myHDDon Volume_Name
#              ↑ /Volues/に出てくるパーティション名(partition name)、ヴォリューム名(Volume name)。
#
#               引数なし(no argument)だと、get "diskutil list"
# 2012-06-03 by mNeji
#

# debug ################
# set -x

# Refered Information
# A bash script  to mount and unmount the Windows partition in Mac OS X
# http://forums.macrumors.com/showthread.php?t=195891

# Volume Name of the Partition
NAME=$1

# 無引数(no argument) ######################################
if [ -z $NAME ] ; then
    diskutil list
    exit 1
fi

# 引数(argument)=パーティション名(partition name in /Volumes/) ################

# /Volumes/中にパーティション$NAMEがあるかの判定
### p_name=`ls -1 /Volumes/ | grep ${NAME}`
### echo "p_name: '${p_name}'" # debugging output
if [ -z `ls -1 /Volumes/ | grep ${NAME}` ] ; then
    # パーティション$NAME が存在していない
    # check the $NAME in "'diskutil list'"
    ### echo "--> `basename $0`: Checking $NAME in "'diskutil list'" at `myDate`"
    if [ -z `diskutil list | grep " $NAME " | awk '{print $3}'` ] ; then
        # no $NAME in "diskutil list"
        echo "--> `basename $0`: Turn on POWER SW and Retry ----------------"
        diskutil list
        echo "--> `basename $0`: Turn on POWER SW and Retry ----------------"
        exit 1
    else
        # already Powerd the HDD, then mounting
        diskutil mount $NAME > /dev/null
        ### echo "--> `basename $0`: '${NAME}' mounted now."
        exit 0
    fi
else
    # already mounted the partition
    ### echo "--> `basename $0`: '${NAME}' mounted already."
    exit 0
fi


  アンマウント用のHDDoff
#!/bin/bash

#
# usage: myHDDoff Volume_Name
#              ↑ /Volues/に出てくるパーティション名。
#              そのVolune_Nameのmount/unmoutのトグル・スイッチ
#
#               引数なし(no argument)だと、get "diskutil list"
# 2012-06-03 by mNeji
#

# debug ################
### set -x

# Refered Information
# A bash script  to mount and unmount the Windows partition in Mac OS X
# http://forums.macrumors.com/showthread.php?t=195891

# Volume Name of the Partition
NAME=$1

# 無引数(no argument) ######################################
if [ -z $NAME ] ; then
    diskutil list
    exit 1
fi

# 引数(argument)=パーティション名(partition name in /Volumes/) ################
# p_name=`ls -1 /Volumes/ | grep ${NAME}` # for debugging
# echo "p_name='${p_name}'"

# Check existing of directory of /Volumes/$NAME ##############
partition_name=`ls -1 /Volumes/ | grep ${NAME}`
if [ -z ${partition_name} ] ; then
# there is no /Volumes/$NAME:
    # check the $NAME in "'diskutil list'"
    ### echo Checking $NAME in "'diskutil list'" at `myDate`
    if [ -z `diskutil list | grep " $NAME " | awk '{print $3}'` ] ; then
        # no $NAME in "diskutil list"
        echo "--> `basename $0`: Confirm Volume(Partition)-name! ----------------"
        diskutil list
        echo "--> `basename $0`: Confirm Volume(Partition)-name! ----------------"
        exit 1
    fi     
else
# there is /Volumes/$NAME:
    # unmounting the its all Disk
    diskutil unmountDisk $NAME >/dev/null
    ##### echo "--> `basename $0`: '${NAME}' unmounted Disk now."
    exit 0
fi
なお、判定文の”[  -n $string ]"は上手く動かなかったので、仕方なく”[  -z $string ]"のタイプに統一しました。

ーーーー
  1. 開始 2012-06-04  (月) 12:53 
  2. 修正 2012-06-05  (火) 13:38  「HDDoff: partition_name」←「binary operator expected」対策

2012-04-28

「Mac mini」の内蔵HDDを消失した!!!

長い事懸案で在った「ピラティスのロール・アップ」運動の検討をしているうちに,その運動のアニメーションを作りたく成って来た。為に「ImageMagic」をインストールしようとしたが「X11.app」が不調なのに気づいて,対処しているうちに,あろう事に内蔵HDDを消去してしまった。

内蔵HDD(210GB)の全体を,外付けHDD1に対して完全に復元しようとして,2TBを4つのパーティションに切ってある(〜500GBごと)のを,効率よく使う為に,さらに細切れに細分割できるかと思い,一つのパーティションを250GB*2に再分割して,そこに内蔵HDDのバックアップを作ろうとしたが,エラーとなった。そこでパーティションを戻そうとしている時に,肝心の内蔵HDDを消してしまったのだ。

その後,内蔵HDDを消去して,新規に「Lion 10.7.3」をRecoveryHDのダウンオードから含めて20min強と,意外とスムーズにダウンロードできた。現在,「Time Machine」でバックアップしたデータを手動でコピーしながら復帰している。

ところが、現状のLion7.3では「~/Library」はFinder上では不可視(遮蔽)されている。其の上に,「Time Machine」のバックアップ・データ(backups.backupdb)の「yyyy-mm-dd-HHMMSS/」の下の「/Users/[アカウント名]/Library」も同様に遮蔽されている。其の上に,「ライブラリ」の表示の仕組みが二重に働くようで,とても「処理し難い」=「間違いを起こし易い」

ここら辺を,アップルのサポート・センタのシニア・アドバイザの方と論議している為に,「ディレクトリの日本語表記」と「~/Libraryの遮蔽解除」をしてしまえば,問題が解消するのではなかろうかと予想した。 そこで;
  • 2つの処理を具体的に述べますと;
    • ターミナルでのコマンドで「ライブラリ」の遮蔽を解除;
      • $ chflags nohidden ~/Library/
    • フォルダ名の日本語ローカライズの停止: 詳しくは別記事の予定。
      • /System/Library/CoreServices/SystemFolderLocalizations で,
        • Japanese.ilprojの下のSystemFolderLocalization.stringsをen.lprolのそれに置き換える;
      •  実際のコマンドとしては;
        • $ cd /System/Library/CoreServices/SystemFolderLocalizations
        • $ sudo cp en.lproj/ SystemFolderLocalizations.strings Japanese.lproj/
上記の処理の後では,予想道理に,内蔵HDDでも,「Time Machine」の個別ファイルでも「~/Library」はストレートに見えるし,コピーできるようになった。
  • 少なくとも「Lion 10.7.4」か「Mountain Lion 10.8」までには,これらの処理をユーザが簡単なコマンドで切り替えるようにして欲しいものだ。
  •  「Time Machine」の個別ファイルなり個別ディレクトリはコピーだけにして、万が一にも書き込みはしないように注意することだとおもう。

この間, 「ピラティスのロール・アップ運動の実証モデル」の概念設計ができたので,東急ハンズで材料を物色したら「田宮模型の4速クランク・ギヤー・ボックスセット, No.110」があったので生まれて初めて組み立ててみた。実際に動かすと,問題点が幾つか見えて来たので,タミヤのサイトでカタログを覗くと,「6速ギヤボックスHE, ITEM72005」がやや高速回転だが構造が確りしているので「凧糸」に張力を派生させるには好都合である事がわかった。

コンピュータのチューニングと模型の製作は,意外と相性がよ意味ようだ。物いじりは頭をリラックスする効能がありそうだ。

両者とも巧くいけば,チューニング記録を報告出来るかも知れないなぁ。

ーーーー このポストの履歴
  1. 開始 2012-04-28 (土) 11:09 
  2. 修正 2012-05-01  (火) 14:55

2011-09-12

Mac mini: Lionの起動ディスク作成

省エネ型の外部HDD(HDD#3)を新たに買って来ていたので,「Mac mini」専用のバックアップとすることにした。以前,アップルのコール・センタに聴いてやったものの,記憶があやふやだったので,一応は調べてみた;
この資料の3枚目の「Mac OS X ユーティリティ」に入れば,雪彪のときの「復元」と同様に作業します。

ただし,現在の環境は
  1. Thuderboltに縦回転したモニタを接続
  2. HDMIに回転無しのモニタを接続
という接続をしていて,このままでは縦回転で動き出すので,シャットダウン中に,Thunderbolt端子から「Mini Display port」を抜いてから,
  • 「(command)+(R)」を押しながら電源SWを押しました。
このHDD#3は,
  • HITACHI 0S03224(STA3 2TB Coolspin 32MB)で。
  • Firewire800でMacMiniに接続しています。
  • 音が静かで,安いので気に入っています。
  • 2TBを4パーティションに分けて,(Pyon, Yomo, Kuri, Moku)としました。
    • Pyonに内蔵ディスク「div onLion」を復元するので,「Pyon 4 div on Lion」と命名の予定です。
  • この後の「Time Machine」によるバックアップは,Yomo以下に逐次保存の予定です。

ーーーー
このポストの履歴
  1. 開始  2011-09-12 (月) 23:44

2011-07-25

「Time Machine」の仕組みは?

最近は「ディスク・ユーティリチ」や「Time Machine」を何度も操作して来て,実作業には慣れて来た。と同時に,「Time Machine」は,とても高度な仕組みを実行しているらしい事は,素人目にも明らかになってきた。

で,『「Time Machine」 仕組み』で検索すると;
ここから手始めに勉強をさせてもろううかな。

ーーーー
このポストの履歴
  1. 開始  2011-07-25 (月) 19:53

注目の投稿

Terminalでの、なんちゃってViモドキ

近頃、ようやくKarabiner-Elementsに慣れてきたので、 Terminalで動作する「擬似Vi-Mode」を作って見たので、ご紹介します。 『概要』 「擬似Vi-Mode」の所以は、方向キー「←↓↑→」を通常の「hjkl」ではなくて「jkil」としました。これ...