0x00 背景: + 目前ubuntu用的是一個80g的硬碟( 一開始沒買硬碟,直接拆了一個老老老老的機子來用),系統16.04, 只有一個/分區 ( /dev/sdb1 ) 。 + 新的硬碟是一塊256G的SSD,新裝了一個系統,除了2G的swap,其他都歸 / 目錄了( /dev/sda1 )。 ...
0x00
背景:
- 目前ubuntu用的是一個80g的硬碟( 一開始沒買硬碟,直接拆了一個老老老老的機子來用),系統16.04, 只有一個/分區 ( /dev/sdb1 ) 。
- 新的硬碟是一塊256G的SSD,新裝了一個系統,除了2G的swap,其他都歸 / 目錄了( /dev/sda1 )。
0x01
一些有用的命令:
fdisk -l # 查看分區
du -lh # 查看文件目錄大小
> 使用參數--max-depth=指定深入
du -h --max-depth=1 []
# 用管理員許可權打開文件夾,在終端輸入
sudo nautilus
# 載掛
sudo mount /dev/sda1 /mnt
0x02
下麵開始正式操作(終端):
# 在原硬碟
# 切換到root用戶
sudo -s
cd /
# 打包除了這幾個(原文沒有"--exclude=/boot",但我因為/boot/gurb吃了不少苦頭,沒必要覆蓋)
tar cvpzf Ubuntu.tgz --exclude=/proc --exclude=/lost+found --exclude=/Ubuntu.tgz --exclude=/mnt --exclude=/sys --exclude=/boot /
# 備份完成後,在文件系統的根目錄將生成一個名為“Ubuntu.tgz”的文件,它的尺寸有可能非常大,該文件就可以移動,本文中直接掛載新硬碟複製了。(所以在此之前需要確保還有空間剩餘,tgz能壓縮到50%一下,僅作參考。)
# 掛載新硬碟, 拷貝文件
mount /dev/sda1 /mnt
cp /Ubuntu.tgz /mnt/Ubuntu.tgz
umount /mnt
# 恢復系統 ( 可以直接在舊系統處理了,直接拷貝文件,第一次做還是小心謹慎一些)
sudo -s
cd /
tar xvpfz Ubuntu.tgz -C /
# -C 參數是指定tar程式解壓縮到的目錄。( 在本例中是/ )
如果說這樣沒有問題的話,那就OK了。
如果不,我只能說說我出現的問題,可做參考:
我是在舊系統的時候解壓的,而且覆蓋了 /boot/grub,開不了機。
【圖】
因此需要修複grub
# 掛載新硬碟
# 先看看 /etc/fstab 裡面的UUID是否正確
vim /etc/fstab
# 使用 lsblk 命令可以清晰的獲取全局的塊設備佈局
# 使用blkid命令可以獲取設備的UUID
# fstab文件修改正確
# 重安裝grub
# 之前看一下 /mnt/boot/ 下如果有grub文件夾,考慮先把它重命名一下,防止後面的命令失效:
sudo mv /mnt/boot/grub /mnt/boot/grub_bak
sudo grub-install --boot-directory=/mnt/boot /dev/sda
sudo update-grub
如果重啟還是沒有成功,而是進入新系統進入grub界面。
則:
grub> exit
進入advanced options of ubuntu..
sudo update-grub # got the grub.cfg
參考:
- 主要 http://www.cnblogs.com/alexanderkun/p/5008514.html
- http://jingyan.baidu.com/article/851fbc37cd27203e1f15ab1e.html
- http://blog.csdn.net/spoilsnow/article/details/51354764
- http://jingyan.baidu.com/article/ad310e80b4c48d1848f49e7a.html
- grub.cfg詳解 http://blog.csdn.net/lazyclough/article/details/5790385
- 這個方法(rsync)沒有成功 http://www.1ittlecup.com/2013/10/03/Ubuntu%E8%BF%81%E7%A7%BB%E7%A1%AC%E7%9B%98/