前两天在给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),才能够使得新系统被正确引导。