众所周知ubuntu系统升级时经常导致系统崩溃,为了以防万一,做好系统备份工作是必须的。俺这次休假归来升级了一下系统,屏幕就花了,捣腾了一下午,始终无法修复,将/boot/grub/grub.cfg改来改去,试图恢复成之前的内核,愣是没搞定,到最后进入系统运行uname -i竟然提示unknown,无奈之下只好重装系统。
闲话少述,体验了一把才知道,linux下备份系统那真是相当简单,首先看一下我的磁盘分区结构:
$ df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda6 5.0G 433M 4.3G 10% /
udev 995M 380K 994M 1% /dev
none 995M 12K 995M 1% /dev/shm
none 995M 84K 994M 1% /var/run
none 995M 0 995M 0% /var/lock
none 995M 0 995M 0% /lib/init/rw
/dev/sda1 198M 37M 151M 20% /boot
/dev/sda3 15G 2.7G 12G 20% /usr
/dev/sda5 7.4G 856M 6.2G 12% /var
/dev/sda7 5.0G 139M 4.6G 3% /tmp
/dev/sda8 113G 80G 28G 75% /home
/dev/sdb4 63G 4.7G 55G 8% /media/sys_bak
由上面的运行结果可知,我的系统共由四个分区需要备份,即:/ /boot /usr /var,另外的几个分区中,/home可以备份,/media/sys_bak是我的移动硬盘,其他不用管了
以下分别为备份上述四个分区的指令
tar -cvpzf /media/sys_bak/laptop_sys/boot.tar.gz /boot
tar -cvpzf /media/sys_bak/laptop_sys/root.tar.gz --exclude=/media --exclude=/home --exclude=/usr --exclude=/var --exclude=/tmp --exclude=/boot --exclude=/mnt --exclude=/proc -exclude=/lost+found /
tar -cvpzf /media/sys_bak/laptop_sys/usr.tar.gz /usr
tar -cvpzf /media/sys_bak/laptop_sys/var.tar.gz /var
以第二条指令为例,解释如下:
tar是用来备份的指令名
c 新建一个备份文件
v 详细模式,将tar运行时的输出到屏幕
p 保存许可,并应用到所有文件
z 采用'gzip' 压缩备份文件,如果需要采用'bzip2' 格式压缩,则可以用j
f 说明备份文件的存放位置
/media/sys_bak/laptop_sys/root.tar.gz 即为备份文件的存放位置,位于移动硬盘
--exclude=xxx选项指示不需要备份的子目录,其中/media, /mnt下面主要用于挂载其他存储介质,这里必需要用--exclude 排出,以仿制无穷递归备份,其他几个为单独的分区。注意目录名后面不要加/,比如/media不能写成/media/
如果愿意,当然可以把上述四条指令写到一个文件里执行。
以下为还原指令
tar -xf /media/sys_bak/laptop_sys/boot.tar.gz -C /boot
以上-C参数指定tar程序解压缩到的目录,在本例中是/boot
阅读(1179) | 评论(0) | 转发(0) |