使用tar安装Linux

 May 21, 2012, 10:50 p.m.   4 comments    linux ArchLinux tar

前两天在给Toni童鞋安装ArchLinux时,深感虽然ArchLinux的安装过程已经相当简单,但是所有软件包都要重新安装一遍,所有系统设置都需要重新配置还是相当费事费力。尤其是需要批量安装系统时,就更显得效率低下了。

tar是Linux上常用的打包/解包工具,而tar也可以用来安装(克隆)Linux系统。我们可以使用tar先将一台机器上已经安装并配置完善的Linux系统打包,然后再到目标机器上解包,就达到了安装(克隆)Linux系统的目的。

对系统进行打包

在打包的过程中同时使用exclude参数排除掉不希望被打包的目录。

tar zcvpf /backup/full.tar.gz -C / \
--exclude=backup --exclude=lost+found/* \
--exclude=mnt/* --exclude=home/* \
--exclude=dev/* --exclude=proc/* \
--exclude=tmp/* --exclude=sys/* .

务必要加上tar的p参数,以保证打包之后的文件权限不被修改。

解包文件到目标分区

使用任何一张LiveCD光盘或者U盘启动,将目标分区挂载,比如挂载到/mnt/arch

将之前打包的系统文件解包

tar zxvpf full.tar.gz -C /

务必要加上tar的p参数,以保证解包之后的文件权限不被修改。如果一切顺利的话,现在所有的系统文件应该已经解包到了目标分区。

目标系统的设置

/dev/proc挂载到目标系统

mount -t proc none /mnt/arch/proc mount -o bind /dev /mnt/arch/dev

然后chroot到目标系统

chroot /mnt/arch /bin/bash

如果一切顺利的话,现在我们已经在安装的新系统里了。

设置新系统的root密码,否则root密码会和原系统一致

passwd

修改配置文件/etc/fstab,使之符合当前环境,否则可能在系统启动中找不到磁盘的挂载点。

vim /etc/fstab

修改grub配置文件/boot/grub/menu.lst,否则grub可能无法启动系统。

vim /boot/grub/menu.lst

安装grub

仅仅将系统文件解包到目标分区还不够,还需要在磁盘上安装bootloader(通常选用grub),才能够使得新系统被正确引导。


anley

anley May 22, 2012, 8:59 p.m. Reply

使用tar命令本地备份确实挺好,不过配置环境可以考虑写个shell脚本自动配置,只要不出意外,自己都不用去管的。

Chon

Chon May 22, 2012, 9:02 p.m. Reply

如果批量安装的话,当然写个脚本会更省时省力:-)


欧唛嘎

欧唛嘎 Oct. 14, 2012, 4:05 p.m. Reply

这玩意不就像ghost了么。。- -

Chon

Chon Oct. 14, 2012, 10:49 p.m. Reply

区别在于,Ghost是对整个磁盘的镜像复制,而这个只是复制了文件~
其实安装系统的过程也不过就是文件的复制。