今天,我們將研究如何將所有數據從一個硬盤驅動器遷移到另一個硬盤,如果由於某種原因我們需要用另一台(相同或不同容量)的計算機替換當前的硬盤驅動器,這項工作將很有用。
幾天前,在一次偶然訪問朋友的房子(幾個月後我堅持不懈地遷移到GNU / Linux)上時,他很高興地向我展示了他們給他的新硬盤(500 Gb)。 HDD,儘管對於許多人來說,它看起來像是一個小容量設備,但在侏羅紀古巴,這仍然是向大數據存儲邁出的重要一步),並且需要替換已經過時且半故障的160 GB磁盤。
他的建議本身是刪除舊磁盤,然後將500 GB磁盤放入其位置,然後安裝 Debian,這是我已安裝在舊磁盤上的發行版,需要一段時間來恢復其所有設置。
發生這種情況時,我朋友的一個堂兄正等著這項工作達到高潮,拿走80 GB的磁盤,這反過來將替換一台更舊的計算機中的40 GB的磁盤。
所有這一切的細節是,我什至沒有帶著安裝盤 Debian,而手邊的存儲庫則更少。 因此,除非我去家中找到必要的東西,否則安裝系統和應用程序的想法是我們無法實現的,但是從古巴聖地亞哥市的另一端搬到另一端不會是另一種選擇對我來說,在這個城市,在新的一年中,官方交通(私人摩托車)的收費翻了一番(寬限期將使我損失不少於40比索)。
火花被點燃:克隆專輯。 我知道克隆磁盤本來是你們中許多人的第一件事,但是對我來說, 準字母 在這些任務中,公開奧林匹斯眾神直接發出了突然的選擇。
在計算了必要的介紹之後,我們將轉到有關案例的技術方面。 最初,我們有一個80 GB硬盤,帶有以下分區系統:
/ dev / sda1 // dev / sda5交換/ dev / sda6 / home
我們將對新的500 GB硬盤進行分區,如下所示:
/ dev / sdb1 // dev / sdb2交換/ dev / sdb3 / home
許多人肯定已經註意到,在第一個硬盤驅動器的情況下,從sda1跳轉到sda5,這是因為定義分區時,存在一個可引導的主分區sda1,然後是一個擴展的分區,分為兩個部分: sda5 sda6.
另外,在某些時候,我認為我必須刪除一個分區,該分區是我的朋友過去用來存放Windows 7廢棄用戶的地方。
500 Gb硬盤驅動器已分區,因此可以連續找到分區號。 該光盤名為 的/ dev / sdb的 因為通過將其安裝在SATA端口中,您可以同時與現有磁盤共享系統, / dev / sda上.
格式化分區
要創建分區,我們可以使用一些可視化工具,例如 的gparted或控制台中的某些應用程序,例如 CFDISK。 請記住,在這一步中,我們來自第一個硬盤驅動器(80 GB)上的操作系統。
也就是說,由此我們創建了新硬盤的三個分區。 創建分區後,必須對其進行格式化:
mkfs.ext4 / dev / sdb1 mkfs.ext4 / dev / sdb3 mkswap / dev / sdb2
我們剛才所做的是將/ dev / sdb1和/ dev / sdb2格式設置為ext4,將/ dev / sdb2格式設置為SWAP。
命令 mkfs.ext4文件 類似於 mkfs -t ext4。 我們必須考慮到,在新的硬盤驅動器上重新啟動時,我們必須告訴系統它具有新的交換分區(交換分區):
swapon / dev / sda2
我們使用sda2而不是sdb2,因為完成後,我們將刪除舊磁盤。
克隆分區
我們已經陷入困境 雞肉飯。 沒有克隆分區的確切方法。 在我們的例子中,我們必須精確複製/ home的內容,為此,我們將執行以下操作(作為root用戶):
cd /媒體mkdir sdb3 mmount -t ext4 / dev / sdb3 /媒體/ sdb3 rsync -a /主頁/ myfriend媒體/ sdb3
放鬆一下,我解釋:
在/ media內部,我們創建了一個名為sdb3的目錄(該目錄應與新磁盤分區的名稱匹配),以便在安裝時不會造成混亂。
然後,我們將使用rsync命令將/ home中的文件和文件夾同步到/ media / sdb3中,因為sdb3分區將是/ home。
旗 -a 它將幫助我們維護權限,所有者,日期和目錄。
我們已經聰明地使用了 /家/我的朋友 而不是 /家/我的朋友/,因為如果我在朋友的末尾加了斜杠,我將只複製/ home /我的朋友中的文件和文件夾。 我們所做的等同於放置:
rsync -a /主頁/ /媒體/ sdb3
就像我的朋友一樣,他在家中只有一個用戶,放置一個或另一個命令行無關緊要。
現在是時候克隆根/分區了。 這是關鍵而微妙的時刻,因為某些故障可能會使分區無法啟動,從而導致硬盤沒有系統。
下一步之前的一個技巧是在根分區中進行一些清理,以節省空間並減少不必要的數據從一個硬盤驅動器到另一個硬盤驅動器的通信。
最好事先清空回收站(甚至在克隆主頁之前),刪除不使用的程序包以及我們不需要的特定程序包:
dpkg -l | grep ^ rc dpkg --purge軟件包
我們還可以確保從本地存儲庫中刪除軟件包:我們在每次更新或安裝中從存儲庫中下載並已緩存的軟件包:
apt-get clean
通過執行上述步驟,您肯定會發現它們可以釋放一些GB的空間。 好吧,讓我們克隆我們的根目錄/。
對於根分區,建議逐位複制數據。 與家相比,這將花費更少的時間,因為它顯然減少了信息的積累,並且一點一點地進行失敗的趨勢幾乎為零,並且在具有特殊權限的情況下不會有錯誤。
在這種情況下,命令行為:
dd if = / dev / sdb1 = / dev / sda1
在這種情況下,我們不必安裝任何東西。 完成操作的時間會更長一些,但這是值得的。
準備重啟
至此,分區已經 的/ dev / sdb1 它是舊磁盤上安裝的根系統的克隆。 關鍵是要確保當我們卸下80 GB磁盤時,我們的計算機能夠識別並引導500 GB磁盤。
現在該觸摸著名的fstab文件了(該文件位於500磁盤上 / media / sdb1 / etc / fstab).
納米/媒體/ sdb1 / etc / fstab
我們將得到類似於以下內容的信息:
#/ etc / fstab:靜態文件系統信息。 ## proc / proc proc nodev,noexec,nosuid 0 0#/ dev / sda1的條目:UUID = 6b192eef-e188-4e07-94de-14c95e02de78 / ext4錯誤= remount-ro 0 $#/ dev / sda2的條目:UUID = 3bd60ec0 -92f3-4ea6-a4d3-aaaf27dd8b8e none swap sw 0 0#/ dev / sda3的條目:UUID = 3828f973-3b20-4019-9fe2-8296c755be31 / home ext4默認值為0 2
現在,我們需要將舊的UUID(該fstab文件中的UUID屬於80GB磁盤)更改為新的UUID(屬於新的500GB磁盤)。 為此,您要做的就是通過設備的UUID查找設備,這可以通過幾種方式完成:
一個選項可以與以下命令一起使用:
ls -l / dev / disk / by-uuid
並以root身份使用:
笨蛋
現在我們只需要用正確的替換掉fstab的UUID。
保證啟動。 安裝Grub2
El 德比安·威茲(Debian Wheezy) 安裝在我朋友舊硬盤上的硬盤使用Grub2作為系統啟動程序,因此在 MBR(主啟動記錄) 新的硬盤驅動器(500 GB硬盤)中,我們將必須安裝新的 GRUB.
確實已經將配置文件寫入了/ boot目錄,但是MBR(硬盤的第一個扇區(“扇區零”)。)為空,因此它是不可引導的。
配置保存在 /boot/grub/grub.cfg,但此文件是由創建的 grub-mkconfig,因此不建議手動進行編輯。
最好的事情是,一旦掛載了新分區(請記住,新克隆的根分區未掛載, dd 克隆而沒有安裝分區):
掛載-t ext4 / dev / sdb1 / media / sdb1
現在,我們必須通過執行以下操作將GRUB2加載到MBR中:
grub-install / dev / sdb
瞧,就是這麼簡單,我們已經有了 GRUB 在500 GB硬盤的MBR中配置。
最後步驟
現在我們關閉計算機,取出我朋友的80 Gb硬盤驅動器,交給表哥(請參閱初始故事),再次打開計算機,用手指交叉,然後...
朋友,我不知道我是否錯了,但我認為-我認為-在使用'dd'命令之前,目標分區的大小必須與源分區的大小完全相同。 如果沒有,一千個道歉。
跟我想的一樣
dd將克隆該分區,多餘的將使該分區未分配,因此由於它需要更多空間來安裝新的應用程序,因此將不允許該分區。
目標分區是否大於源分區都沒有關係,那麼可以告訴文件系統使用額外的大小。
那是史詩般的。 讓我們看看我是否可以安裝Debian但可以使用Arch風格(純命令)。
您可能已經使用dd克隆了MBR:
dd if = / dev / sda = / dev / sdb bs = 512 count = 1
我認為分區不必完全相同,至少在Arch Wiki中沒有提及,我們必須嘗試一下。 問候。
看起來不錯,但是我不明白為什麼如果= / dev / sdb的= / dev / sda跳過前512個字節,為什麼要執行dd?
好的,我知道,不同之處在於,一開始只克隆了分區,這就是為什麼MBR的512個字節被跳過的原因。 非常感謝RudaMacho的建議。
您好,您打算更新系統嗎? 我說的是Windows XP
您好elav,我認為使用clonezilla可以簡化任務,但是您可以通過這種方式進行試驗,這畢竟是“黑客”精神,這是很好的
的問候!
在Slackware中,我使用tar來製作磁盤之間文件的完整副本,這保留了權限,同時我也藉此機會進行了備份,fstab文件要簡單得多,因此無需修改uuid,就足夠了您以相同的順序創建了分區,因為使用lilo可以更輕鬆地創建引導...
很好😀
根據我的經驗,gparted複製-克隆-分區速度更快
如果您需要放大或縮小它們,也可以
宏偉的elav指南,非常感謝您的分享。
我有一個問題:系統是否需要使用swapon命令來檢測交換分區,還是足以更改fstab中的UUID?
6個月前,我對debian stable和kde 4.8感到無聊。 我想要最新的KDE! 我沒有安裝盤或USB內存..所以我用與elav描述的幾乎相同的方法克隆了我的馬stable,併升級到sid。
我向所有Linux用戶推薦這種做法,我們的系統不需要超過15 GB。 通過根分區。 少一兩次是不多的。
做出如此簡單明了的解釋,做出卓越的貢獻再容易不過了。恭喜您,您是gnu / linux的老師!
很好的教程。 非常清楚!
還有命令“ dd”