重装/升级Debian-Based Linux系统的几个软链接的Dirty Tips

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
头像
AndreaKris
帖子: 79
注册时间: 2010-09-29 12:26

重装/升级Debian-Based Linux系统的几个软链接的Dirty Tips

#1

帖子 AndreaKris » 2011-10-27 18:55

转自博客:http://blog.sina.com.cn/s/blog_695aef260100uzc1.html
重点标注、字体颜色、缩进等都无法复制过来,如果想看更清除明了的版本,可以去博客看原文。


--转载开始-----------

对于博主这样有系统洁癖,但是有懒的人来说,重装Linux选择“不,不格式化此分区”真的是不踏实到想死啊有木有?但是版面布局\升级的软件包还得用apt-get dist-upgrade 再龟速down一遍这也让我这种人想死啊有木有?

注:这里主要提到的是Debian-based Linux中gnome2和xfce桌面的目录结构,其他发行版、桌面环境的目录位置可能不一样。但是重要的是思路,是方法。


今天的Super Keyword:软链接。

软链接基本型:ln -s 源目标 目的目标

// -s非常重要的参数,因为本篇文章主要并非区分 ln 和 ln -s 的区别,因此如果想知道相关知识就问问Google吧。


没错,软链接可以说是Linux玩家的一项基础技能,但是如何玩转这项功能的文章却没有见过。博主一直喜欢那些Dirty Tips,最Dirty的在最后“三、软链接让重装的系统升级加速”这部分,对前两张没兴趣的话,第三部分博主也十分推荐您看一下噢。


OK, Let's cut to the chase!


问:把/home分成单独一个分区不就好了吗?

答:如果是windows和Linux共存的硬盘呢?home分区中无非也就是视频、音乐等等的内容,绝大部分是跟windows的“D盘”、“E盘”功能重复的东西。

最最重要的,配置文件的部分,而这部分占用的空间反而是最小的。而且一旦分区,容量大小就定下了,现在硬盘容量大,分区的时候我们也绝不会手软!这么一来,Linux用不掉但windows又不能用的ext3/ext4分区容量也不可小觑。

所以博主的策略就是整个Linux系统就装到一个分区,然后用各种不占容量的软链接来实现HOME单独分区等价的效果。此方法适用于习惯开机自动挂载备份分区的玩家。




一、恢复新系统保有原先面板布局,面板上自定义的快捷方式


预备信息:

~ 目录表示您的家目录(例如/home/tom,/home/mike)。


博主的Linux备份文件夹在一个几百G的ntfs分区中,是和windows共用的一个分区。也就是windows中常说的E盘,所以命名为DRIVE_E。而linux_backup是该分区中的一个目录,专门放Linux相关的数据。

此分区被定义至 /etc/fstab 中,开机自动挂载,此分区的挂载条目为:

/dev/sda6 /media/e ntfs defaults,rw,user,exec 0 0



以gnome2为例,首先要退出gdm:


$ sudo /etc/init.d/gdm stop


进入之后会进入终端控制台,panel目录在~/.gconf/apps中,将原先的panel目录重命名为 panel_ori(直接删除也太鲁莽了点):


$ cd ~/.gconf/apps

$ mv panel panel_ori


然后把备份文件夹中的panel目录链接过去:


$ ln -s /media/DRIVE_E/linux_backup/panel ~/.gconf/apps/

(panel和~ 之间有一个空格)


重新进入gdm见到效果:


$ sudo /etc/init.d/gdm start

XFCE桌面的面板配置信息在 ~/.config/xfce4/panel 中,操作方法相同(可能登录管理器使用的不是gdm,换成您使用的即可)。

注:恢复后注销可能有些图标是空着的,这是因为新系统中所链接的那些软件还未安装,等软件安装好,就会正常的。


二、恢复常用软件的配置


如今的Linux系统,重装软件并不可怕,最可怕的是每次都得重新完成一次习惯设置。一般来说~目录中会有 .软件名这样的目录,这些目录就是包括你的一切习惯设置、本地数据。

例如:

Libreoffice → ~/.libreoffice

VirtualBox → ~/.VirtualBox


有些则不一定是软件名,例如:

Firefox → ~/.mozilla

Pidgin → ~/.purple

Ibus的用户词库则在~/.cache/ibus/pinyin,自定义词组的配置文件在~/.config/ibus/pinyin/phrases.txt


反正,看着像的都备份了吧,到时候如果是多余的则可以删的。


Tips:还有一些比较特别的配置文件,例如 /etc/samba/smb.conf 中就保存着你设定的samba共享文件夹的配置。/etc/network/interfaces 中保存着一些大大们对于网络接口配置的情况,这些也都可以备份。只是这类文件在恢复的时候使用cp把文件拷贝过去比较可靠。


这个部分Gnome2和xfce4是一样的方法——写一个入门级的脚本便可解决,此脚本的功能就是把这些:


$ cd /media/DRIVE_E/linux_backup/ //还是假设我备份的资料偶在此

$ touch software_configdir.sh //建立名为 software_configdir.sh文件

$ gedit software_configdir.sh //更具您的系统gedit可能会是mousepad, leafpad


内容类似如下:


# ln -s 备份位置的文件夹 家目录,注意备份文件夹与 ~/ 之间有一个空格!


ln -s /media/DRIVE_E/linux_backup/.mozilla ~/

ln -s /media/DRIVE_E/linux_backup/.libreoffice ~/

ln -s /media/DRIVE_E/linux_backup/.purple ~/


sudo mkdir /etc/samba/ # 建立 /etc/samba 目录,如果已经有此目录,会提示你无法创建,但是在脚本中,不会影响下一条命令的执行

sudo cp /media/DRIVE_E/linux_backup/smb.conf /etc/samba/


mkdir -p ~/.cache/ibus # -p参数则可以确保如果不存在 ~/.cache目录,则建立之,再建立ibus目录

ln -s /media/DRIVE_E/linux_backup/pinyin ~/.cache/ibus/


mkdir -p ~/.config/ibus/pinyin

ln -s /media/DRIVE_E/linux_backup/phrases.txt ~/.config/ibus/pinyin/


直到把所有目录链接命令都写进去,不要怕,这个只是一次性操作,以后每次备份都可以重复利用,是一劳永逸的操作。


如何执行?


$ sh /media/DRIVE_E/linux_backup/software_configdir.sh


Tips:每次装好新软件的第一件事,把 ~/.软件名 移动到备份目录中,然后用链接的方式链过去,顺便在software_configdir.sh脚本中添加相应链接命令,是个很好的习惯,以免到时忘记备份噢。听上去烦了点,但是这个习惯会让你省掉许多麻烦,即便是换发行版,这个脚本都可以使用!



三、软链接让重装的系统升级加速


如今的机器配置高,重装系统倒是一会就装好了。但是之后的“升级补丁”、重新安装需要依赖网络的软件。。的确是挺磨人!为此,博主是如此应对的:


Debian系的系统平日通过网络安装软件的缓存包都在 /var/cache/apt/archives/ 目录中。每次更新过软件或者有下载过新的deb包,都习惯性地把*.deb都做一下备份:


$ cp -n /var/cache/apt/archives/*.deb /media/DRIVE_E/linux_backup/apt-archives/

// -n 参数表示,不覆盖已存在文件。如果不是第一次执行该命令,可能会出现一大窜xxx文件已存在之类的,但新的文件已经成功复制了。


那么如何让新系统能利用这些软件包呢——把这些deb文件软链接到系统调用的位置:


$ sudo ln -s /media/DRIVE_E/linux_backup/apt-archives/*.deb /var/cache/apt/archives/


这样,在系统中执行更新系统或者安装软件包时,系统会检测到/var/cache/apt/archives/ 中的deb文件,原本需要从网络下载的那些文件就不需要再下载一遍了!直接顺顺溜溜的应用更新!


Tips:嫌每次都要打一长串命令太麻烦?可以在 ~/.bashrc 中加入一行:


alias al='cp -n /var/cache/apt/archives/*.deb /media/DRIVE_E/linux_backup/apt-archives/'


al只是我的习惯你可以改成任何你打得顺手的命令,这样,只要在终端输入 al ,就可以执行等号右侧定义的命令了(保存后,从新打开的终端开始生效)。加入的位置最好是80行左右,“# some more ls aliases #alias ll='ls -l' #alias la='ls -A' #alias l='ls -CF'”的下面。
Debian - Squeeze (Xfce)
-
微博: http://t.sina.com.cn/akpan
Twitter: https://twitter.com/andreakpan
最近学习日语中: http://andrea-jplearning.blogbus.com
-
AMD Athlon(tm) 64 X2 Dual Core Processor 4600+ ,2400Ghz
2.00G 的内存
回复