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/