[OS X] 如何備份你的電腦Mac篇,高階備份法 - iPhone4.TW

會員登入



第1頁,共3頁 123 最後最後
顯示結果從 1 到 10 共計 27 條
  1. #1
    吉米丘 的頭像

    勸敗大魔王

    註冊日期:09-20-2007
    文章:50,710
    謝謝你: 9,906
    在 6,551篇文章中獲得 48,051個感謝
    在開始之前,若夥伴還搞不懂,甚麼叫做備份,那可以先看這篇【[教學]如何備份你的電腦Mac篇,基本備份法

    2.高階備份法

    接著這部份的備份呢,就是要動到系統啦,所以這部份的修改,建議各位夥伴量力而為,或是請專家幫你處理,甚至,或是等未來有夥伴有能力將下面的動作寫成一個程式時候,再來處理吧~

    這個高階備份有甚麼特色呢?


    說穿了很簡單,就是把系統硬碟裡面所有關於【使用者】的東西,全部搬離這棵硬碟

    到你的另外一硬碟分割區,或是另外一個硬碟,甚至是你的外接磁碟陣列,例如吉米就是透過這樣把所有的使用者資訊,改到外接磁碟陣列RAID1去

    這樣有甚麼好處?

    就是系統跟資料分離之後,下次你可以隨意的更新、備份你的系統碟,然後再將使用者資料給【掛】回來,那就又完全可以套用上所有資料啦~

    這還有另外一個好處,若你電腦的OS壞了,你只要覆蓋回來你的系統碟備份,或是拿出實體的系統硬碟備份(對,吉米就有這樣做一顆,以防萬一時,可以馬上接手使用),而使用者資料也會自動從外接磁碟陣列給傳回來,所以不用擔心工作開天窗

    或是你的電腦掛了,送修不會這麼快回來,而你也不是白金級VIP,所以也不會有【替代機】可以讓你繼續work,那怎麼辦呢?

    你就需要這種方式,然後找一台電腦,用你的備份系統碟開機,並且串上你的使用者資料的外接陣列系統,就這樣,你又是一條活龍囉~

    而你也不用再那裡,搬動你的資料,搬來搬去,怕哪天忘記少搬了一個,你的資料就會有空窗期囉~

    好啦,不多說費話了,那這部份要怎麼做?


    A.首先,請記住備份再備份,先把你的硬碟給完全備份起來吧,最好是用硬碟備份,不燃燒錄成
    DVD或是CD也是很漫長的一條路哩~

    B.當然啦,開始將你的個人目錄給複製到其他硬碟去,在終端機裡面要輸入的語法如下

    代碼:
    sudo ditto -rsrcFork -V /Users /Volumes/你的磁碟名稱/Users
    上面的/Volumes/你的磁碟名稱/Users,其中【你的磁碟名稱】就是你想要移動過去的地方

    或許有人問,我怎麼知道我的磁碟名稱叫做甚麼?


    你可以在磁碟管理工具裡面看到下面有這個名稱的顯示,但建議用英文的,不要自己以為很厲害用中文,這樣有甚麼問題吉米不敢保證

    接著,若你的名稱中間有個空白,例如吉米這個名稱為【S2VR DUO】你可別就這樣輸入成/Volumes/S2VR DUO/Users喔,因為這樣是錯的

    你要輸入成/Volumes/S2VR\ DUO/Users才對喔,也就是空白前面要加上【\】反斜線,才是正確喔

    不過,若你嫌這樣自己輸入太麻煩,又怕輸入錯誤,那你就拿出你【原本】應該有的【直覺】,當你指令打到sudo ditto -rsrcFork -v /Users 的時候,後面不是還要加上目標目錄嗎?這時候你把你桌面上的目標磁碟的圖示,給拖過來終端機,然後放開,他就會幫你自動輸入那台機器的名稱囉~

    有沒有很直覺呢?

    所以以吉米的例子來說,存到外接eSATA陣列系統JCMS DATA RAID就是輸入成

    代碼:
    sudo ditto -rsrcFork -V /Users /Volumes/JCMS\ DATA\ RAID/Users

    然後按下Enter


    就開始複製啦~

    等待複製完成之後呢,接著就來看步驟C

    C.接著,請執行從你的【應用程式】->【工具程式】->Netinfo管理程式


    並且在User下面,找到你的使用者名稱的簡寫,然後點選他,出現這個畫面,並且先按下左下角的鎖頭解鎖,然後修改Home的值


    若你不知道你使用者名稱的簡寫是甚麼,你可以在左上角的【藍色蘋果】->【系統偏好設定】->【帳號】->【密碼】這裡看到你的簡寫


    然後改成你的目標磁碟的路徑,這裡又要注意一下喔,這裡的目錄就【不要】輸入反斜線【\】,若你怕出包,一樣,把這格清空,然後去開啟你的那個目錄夾,把他找出來,然後拖來這個輸入格子內,他會自動幫你輸入成上面的路徑,然後儲存並且離開

    記住!!所有的使用者,都要這樣修改喔!!

    D.接著要來告訴【系統】你使用者的home目錄搬家了,而這時候不能使用【替身alias】的原因是因為Mac OS X底層的unix架構,並不認識這個替身,所以要下指令,告訴他實際的對應位置

    只是在此之前,要先把原本硬碟裡面的/Users目錄全部砍掉,或是改名字

    這裡教你的是把他砍掉,所以要用的指令如下

    代碼:
    sudo rm -dr /Users
    這樣就搞定啦~

    接著你要下這樣的語法來告訴他你的目標磁碟的Users目錄,要對應到原本的/Users目錄

    代碼:
    sudo ln -s /Volumes/你的目標磁碟/Users /Users

    接著,按下Enter,基本上都確認無誤之後就可以重新啟動電腦啦

    當然,故事還沒有結束,若這當中你出了甚麼差錯,例如吉米就是在上面那個Netinfo manager那邊輸入錯誤的路徑位置,也就是自以為聰明的在路徑的空白名稱上面加上了反斜線,然後就直接開機,那就當然找不到你的家目錄,導致該User無法login,而好死不死,吉米又一次把所有人都搬走了...

    照成系統沒問題,只是找不到家目錄而無法login

    那怎麼辦呢?很簡單

    將你這台電腦開機成【目標磁碟模式】(也就是開機時,聽到東一聲之後,按著【T】不要放,就會進入目標磁碟模式,也就是這台電腦變成了一台大型的硬碟外接盒,然後用另外一台電腦來連接

    並且進入這棵硬碟的/Var/db/netinfo/目錄下面的local.nidb給複製回來即可,甚麼?!你沒有備份?!吉米不是老早就要你做一個實體備份嗎?因為吉米發現,雖然你可以直接進去改他的值,但是仍然不會有效,或是參考另外一位夥伴JK.Chang所告訴吉米的方法

    代碼:
    NetInfo的使用者資料可以用 /etc/daily 這個來定期備份,會存放在 /var/bacckups/local.nidump 
    當你的電腦無法登入就可以將原本的使用者資料Restore回來。
    詳細的步驟如O'Reilly的MacOSX for Unix Geeks。
    (我不能保證一定可行,不過我是照書上的步驟完整寫下,姑且一試吧!我想誰也不會想去試這種情況)
    
    1.用single-user開機
    2.修復你的file system
    #/sbin/fsck -y
    3.mount root filesystem 可以讀寫
    #/sbin/mount -uw /
    4.到NetInfo database的目錄
    #cd /var/db/netinfo/
    5.將舊的database更名
    #mv local.nidb/ local.nidb.broken
    6.更換目錄至startupItems目錄
    #cd /System/Library/StartupItems
    7.啟動network
    #./Network/Networkstart
    8.起始port mapper
    #./Portmap/Portmapstart
    9.起始NetInfo
    #./DirectoryServices/DirectoryServicesstart
    10.載入backup的database到netInfo
    #/usr/bin/niload -d -r / . </var/backups/local.nidump
    11.建立.AppleSetupDone檔
    #touch /var/db/.AppleSetupDone
    
    12.重新開機
    #reboot
    或許可以成功

    E.行文至此,希望你還沒開始動作,因為吉米還沒說完,以上的動作是架構在你所遷徙過去的磁碟,是開機後就會自動mount上去的磁碟,例如內接的另外一棵硬碟,或是另外一個磁碟分割區,但若你想要遷徙的是【外接】的磁碟例如火線的磁碟陣列、火線的硬碟外接盒、USB外接盒,甚至高速例如吉米在用的這個CalDigit S2VR Duo每秒傳輸速率高達138MB/s的eSATA磁碟陣列外接盒

    那你就需要系統在開機之初,就自動將所有外接硬碟給mount裝載完成,這樣他才能在你login的時候,找到正確資料,因為原本系統的設定是的外接磁碟的裝載,是在你login完成之後才會去裝載的,那這樣就程序不對啦

    所以你需要在/Library/Preferences/SystemConfiguration/目錄下面,新增一個純文字檔案,名稱為autodiskmount.plist

    並且將下面這段語法貼入,並且存檔,並放置於上面的目錄中即可

    代碼:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" 
       "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>AutomountDisksWithoutUserLogin</key><true/>
    </dict>
    </plist>
    F.好囉,一切檢查無誤之後,開始重新開機囉,接著就可以開始好好的享受你的快樂時光啦~

    而你所有的使用者資料,都將會被存放,並且及時的更新於你的外接磁碟陣列(或是外接硬碟)囉~


    原文資料:搬動你的Home目錄
    http://maczealots.com/articles/home/

    原文資料:開機之初,自動裝載所有外接硬碟
    http://www.macosxhints.com/article.p...31103155828117


    ps.吉米如此使用一個月後的後記

    這個看似完美的招數,其實有個缺點跟大家報告一下


    就是當你外移出去含有Users目錄的硬碟,吉米繼續以上面的例子名叫【JCMS DATA RAID】,再某次開機,沒有連接上的時候呢

    我們偉大的Mac OS X,會很自動的幫你【創造】出一個也名叫【JCMS DATA RAID】的磁碟

    但是你在電腦裡面打死都找不到他在哪裡,裡面一樣有Users的目錄,只是完全回到當初安裝完成的乾淨狀態

    說白話一點,就是說當他找不到A,因為沒辦法完成開機程序,所以他自己創造一個A來完成這個任務

    而你原本的磁碟,就會被偷偷改成【A 1】,以上面的例子,就是叫做【JCMS DATA RAID 1】

    但是你在桌面上面看不出來喔~

    要進入Terminal終端機裡面下指令才能發現他們

    這時候該怎麼辦呢?

    1.先打開終端機,輸入下面指令回到/volumes/的目錄
    代碼:
    cd /volumes/
    然後下指令ls 看看到底有哪些外接硬碟,而這時候假的JCMS DATA RAID也會出現在這裡

    代碼:
    ls
    這時候你就會看到例如這樣的畫面

    代碼:
    JCMS DATA RAID        JCMS DATA RAID 1     
    等等其他磁碟的名稱
    也就是說這時候的JCMS DATA RAID是假的,是系統創造出來的

    JCMS DATA RAID 1才是真的原本你使用的外接硬碟

    該怎麼辦呢?

    很簡單,就是砍掉假的JCMS DATA RAID,把真的名字換過來JCMS DATA RAID 1 換回JCMS DATA RAID

    怎麼做呢?

    一樣在Terminal終端機下面,下下面的指令

    1.砍掉假的JCMS DATA RAID

    代碼:
    rm -rf 'JCMS DATA RAID'
    2.砍掉之後呢,就要把原本的JCMS DATA RAID 1改回成JCMS DATA RAID原本的名字,這裡記住喔,你桌面上看到的那個磁碟名稱還是JCMS DATA RAID喔,但實際上在系統核心已經被改名字了

    代碼:
    mv 'JCMS DATA RAID 1' 'JCMS DATA RAID'
    這樣就換回來了

    不過!

    還有一個地方要修改,那就是上面提到的Net info manager


    你同樣要進去看看你的這個目錄是否仍是連結到正確磁碟/Volumes/JCMS DATA RAID/.....

    若都正確,就存檔離開,然後logout,然後在登入即可完成修復程序

    其實不太複雜啦

    只是知道怎麼解,就簡單多了...

    若上面的語法根你說權限不足,很簡單,就在語法前面再加上sudo即可,例如

    代碼:
    sudo rm -rf 'JCMS DATA RAID'
    這樣就ok啦

    使用這一個月來,很讚,系統歸系統、資料歸資料,由於吉米使用的外接eSATA磁碟陣列速度飛快,幾乎感受不出來與原本的差別

    而也不用擔心主機掛掉工作停擺

    換上另外一台機器,照著上面的步驟修改一下,又可以完全正常運作了...

    不過,說真的,這真的適合高階玩家使用,一般使用者請參考【[教學]如何備份你的電腦Mac篇,基本備份法】吧~
    此篇文章於 09-18-2013 03:06 被 吉米丘 編輯。



  2. #2
    jas520 的頭像

    超熱血的愛用者

    註冊日期:03-16-2009
    文章:579
    謝謝你: 31
    在 11篇文章中獲得 38個感謝
    這幾天在研究吉米大的這篇"如何備份你的資料:高階備份法"中, 提到Netinfo這個管理程式, 但是這個屬於10.4的程式在10.5跟10.6裡並不存在. 因此有數個步驟如:查詢"簡稱"及如果osx自動幫你創造了一個假系統而你需要去修改它的值等, 就處於無解狀態.

    想請問吉米大或是其他人知不知道可以用哪些方法來取代上述需要用到Netinfo管理程式才能做的步驟呢?

    另外是關於尋找簡稱的問題, 如果從系統偏好設定> 帳號> 密碼底下去看, 我只會看到這個畫面:



    看來不太像是教學裡頭你該輸入的名稱說. 還請解惑了.


  3. #3
    吉米丘 的頭像

    勸敗大魔王

    註冊日期:09-20-2007
    文章:50,710
    謝謝你: 9,906
    在 6,551篇文章中獲得 48,051個感謝
    其實不需要做到高階備份

    做我說的那些把重要資料夾,使用ln語法搬到外接陣列去就好囉


  4. #4
    jas520 的頭像

    超熱血的愛用者

    註冊日期:03-16-2009
    文章:579
    謝謝你: 31
    在 11篇文章中獲得 38個感謝
    吉米好, 看到你的回應之後, 再次仔細的思考了一下. 我本想是只搬移指向幾個特定資料夾到外接硬碟去的, 但這些特定資料夾裡包括了文件, 音樂, 影片, 照片, 圖片, 其實就已經差不多是整個家目錄了. 因此才想要參照高階備份法的教學來搬移整個家目錄. 因為教學篇裡的作業系統是10.4的, 所以我試著google了一下可以在10.5 or 之後搬移家目錄的作法. 於是找到這篇:
    Changing User home directory under Mac OS X Leopard and beyond

    裡面提到如何使用terminal來搬移整個家目錄:



    第一行的指令是copy整個家目錄. 然後第7行應該就是等於教學裡的步驟C



    然後這是檢查有沒有搬成功這樣.



    然後這是改舊的家目錄名稱. (或者也可以直接砍了?)等於步驟D,

    不過他是將光碟機改成第2顆硬碟, 所以等於是一開機他的第2顆硬碟(新家目錄所在位置)就會自動mount上去?

    所以使用火線外接盒的話我還要多加上一個步驟E?

    決定改天先找一顆換下來的舊硬碟試驗看看, 如果能成功的話再上來報告.

    文章中有提到在更改完家目錄路徑後要先登出再重新登入一次好確定系統有讀取成功, 但我的疑問是這樣子登出後再度登入時, 系統會知道它該讀取那一個家目錄嗎?我的意思是:雖然是在不同的volume, 但是一個系統下現在同時存在著2個名稱一樣的家目錄, 這樣子會不會造成系統錯亂呢?

    希望吉米能指點迷津阿, 謝謝了.


  5. #5

    海盜船長

    註冊日期:12-14-2007
    文章:82
    謝謝你: 1
    在 12篇文章中獲得 21個感謝
    第一,不同路徑下,即使檔名相同,在OSX下,還是屬於完全不同的檔案。
    第二,你已經將系統內家目錄的路徑更改,系統只會到指定的地點讀取家目錄的訊息,不會和你原來的搞混。
    第三,更何況你已經將原來的家目錄改名了,OSX更不會搞錯。
    第四,怕的是如果你以後忘記將外接碟接上,或是外接碟壞掉了,可能就進不了你的家目錄了,到時會發生什麼情形,我也無法預測。
    此篇文章於 06-17-2010 11:38 被 lubie 編輯。


  6. #6
    吉米丘 的頭像

    勸敗大魔王

    註冊日期:09-20-2007
    文章:50,710
    謝謝你: 9,906
    在 6,551篇文章中獲得 48,051個感謝
    不要把「整個Home」目錄改到其他地方,因為若你另外一顆硬碟沒來得及mount上的話

    你的系統就會自己建立「假」的home目錄,那你就更麻煩了


    這是我現在的作法

    當然還有包含資源庫下面的某些目錄如mail...等你覺得重要的目錄


  7. #7
    jas520 的頭像

    超熱血的愛用者

    註冊日期:03-16-2009
    文章:579
    謝謝你: 31
    在 11篇文章中獲得 38個感謝
    引用 作者: 吉米丘 查看文章
    不要把「整個Home」目錄改到其他地方,因為若你另外一顆硬碟沒來得及mount上的話

    你的系統就會自己建立「假」的home目錄,那你就更麻煩了


    這是我現在的作法

    當然還有包含資源庫下面的某些目錄如mail...等你覺得重要的目錄
    是替身的就是吉米放在外接硬碟的資料夾嗎?

    那麼這樣就變成了只搬移特定資料夾並且指向? 所以該用這個指令指向:

    sudo ln -s /Volumes/你的目標磁碟/Users /Users, 那我該在users之後加上我要指向的那個特定資料夾的名稱這樣?

    那複製呢? sudo ditto -rsrcFork -V /Users /Volumes/你的磁碟名稱/Users, 也是users後面再加上要特定複製的資料夾?
    所以..吉米可以給個範例嗎?(小小聲) 剩下的我如法炮製就好..

    謝謝了!


  8. #8
    jas520 的頭像

    超熱血的愛用者

    註冊日期:03-16-2009
    文章:579
    謝謝你: 31
    在 11篇文章中獲得 38個感謝
    引用 作者: lubie 查看文章
    第一,不同路徑下,即使檔名相同,在OSX下,還是屬於完全不同的檔案。
    第二,你已經將系統內家目錄的路徑更改,系統只會到指定的地點讀取家目錄的訊息,不會和你原來的搞混。
    第三,更何況你已經將原來的家目錄改名了,OSX更不會搞錯。
    第四,怕的是如果你以後忘記將外接碟接上,或是外接碟壞掉了,可能就進不了你的家目錄了,到時會發生什麼情形,我也無法預測。
    了解了, 意思是如果要複製家目錄到不同的volume下的同時也可以順便更改新的家目錄名稱這樣, (反正都不同volume了)

    那個如果開機時硬碟沒有mount上去的後果吉米在教學裡有講過了... (不過我還是有點想試看看...如果日後有了2台電腦的話

    謝謝解答.


  9. #9
    吉米丘 的頭像

    勸敗大魔王

    註冊日期:09-20-2007
    文章:50,710
    謝謝你: 9,906
    在 6,551篇文章中獲得 48,051個感謝
    複製很簡單

    以Movies為例子,因為我影片全部都在另外一個專用的外接陣列名字叫做VideoRAID的目錄Movies

    所以我只要在家目錄中,先把Movies目錄丟到垃圾桶

    然後開啟terminal

    PHP 代碼:
    ln -/Volumes/VideoRAID/Movies  /Users/你的名字/Movies 
    這樣就可以了


  10. #10
    jas520 的頭像

    超熱血的愛用者

    註冊日期:03-16-2009
    文章:579
    謝謝你: 31
    在 11篇文章中獲得 38個感謝
    引用 作者: 吉米丘 查看文章
    複製很簡單

    以Movies為例子,因為我影片全部都在另外一個專用的外接陣列名字叫做VideoRAID的目錄Movies

    所以我只要在家目錄中,先把Movies目錄丟到垃圾桶

    然後開啟terminal

    PHP 代碼:
    ln -/Volumes/VideoRAID/Movies  /Users/你的名字/Movies 
    這樣就可以了
    (做筆記中)

    咦?是要先丟阿?

    所以是:step 1. 先把Movies 整個複製到外接去.

    step 2. 丟了原本家目錄下的Movies.

    step 3. 使用ln指令

    step 4. 做個替身放在家目錄下, 從此之後只要把檔案往家目錄下的這個替身裡一丟所有的檔案就都會自動到外接去?


 

 

該主題的標籤

發文規則

  • 不可以發表新主題
  • 不可以發表回覆
  • 不可以上傳附件
  • 不可以編輯自己的文章
  •  
回到此頁頂端