定制PXE Live系统

现在已经有上百中Linux发行版,很多发行版都提供了通过PXE启动的Live系统。在科大校园网网络启动服务上,我们部署了很多发行版的Live系统,例如Ubuntu、Debian、Deepin、BackTrack、Knoppix等,既给一些需要维护系统的同学带来了极大的便利,也使得那些未接触过Linux的同学可以“无痛”体验各发行版,并决定哪一款发行版更符合自己的口味。然而,随着校园网的发展,大家的需求也变得更加多样化。各发行版的Linux系统已经不能满足大家的需求,因此我们需要自己定制一些系统,以满足在学校中各个场合的需求。

发行版Live系统的限制

发行版提供的Live系统具有这些限制:

  1. 数据易失。Live系统启动后所有的修改都保存在内存中,重启系统后所有修改都丢失了。
  2. 预装软件少。Live系统只预装了很少的软件,不足以日常办公的需求,即使作为体验系统也偏少

各使用场合的需求

目前在校园网中,大家对系统的需求有这些:

  1. 体验系统。对于Linux新手,要决定是否使用一个系统,一次体验是不够的,需要长期的使用,因此需要能够保存一些对系统的修改,如新装的软件、修改的配置文件、一些用户数据
  2. 公共机房的系统,需要安装所有常用的软件
  3. 个人移动办公使用的系统,需要能够将一些个人数据存放在网络上

因此,我们希望能够定自己定制Live系统,以满足各使用场合的需求。

使用Debian Live定制系统

在各发行版中,Debian提供了定制Live系统的工具,Debian LiveDebian Live的文档中有非常详细的介绍。简化后的步骤为:

sudo apt-get install live-build
mkdir live-system && cd live-system
lb config
sudo lb build

其中,在config前可以自己修改config脚本来对Live系统的一些属性进行定制,例如Live的类型(ISO/PXE/HDD等)、Live系统使用的源、安装的软件等。在build系统之后也可以chroot到目标系统中进行进一步的定制。这篇文章中有一个稍微详细的定制步骤。使用live build可以定制debian,也可以定制ubuntu。

然而,这个方法仍然比较麻烦,定制者需要完全从头定制一个系统,并且不能复用一些其他人已经定制过的系统。因此我们推荐选择一个最接近使用需求的系统,在这个系统的基础之上进行进一步定制,而定制步骤也会简洁很多。

基于Linux Deepin定制Live系统

通过观察容易发现,Ubuntu, Deepin, BackTrack等Live系统都使用相似的方法进行封装,因此基于这些系统进行定制的方法基本相同。而Deepin的中国本地化做的最好,也最接近校园网中的各种需求,因此我们选择基于该系统进行定制。

首先观察一下这个Live系统的结构:

$ ls -R
.:
casper  DeepWin.exe  isolinux  md5sum.txt  preseed  README.diskdefines

./casper:
filesystem.manifest  filesystem.manifest-desktop  filesystem.size  filesystem.squashfs  initrd.lz  vmlinuz

./isolinux:
back.jpg  boot.cat  deepin  gfxboot.cfg  isolinux.bin  isolinux.cfg  menu.cfg  stdmenu.cfg  text.cfg

./preseed:
deepin.seed

其中最重要的三个文件是位于casper目录下的vmlinuzinitrd.lzfilesystem.squashfsvmlinuzinitrd.lz分别是启动是使用的内核和initrd文件,在系统启动之后,会通过NFS挂载位于服务器上的这个ISO的根目录,然后挂载filesystem.squashfs,接着使用aufsfilesystem.squashfs一段内存挂载为根目录,这段内存空间做为aufs的写分支。

由此可知,我们要定制系统,只需要对这个filesystem.squashfs修改并重新打包即可。下面就开始对这个文件修改并打包。

首先挂载这个文件系统,复制一份,并chroot到这个系统环境中:

sudo mount -o loop -t squashfs filesystem.squashfs /mnt/
sudo cp -ar /mnt/ ~/filesystem/
sudo umount /mnt/
sudo mount -o bind /dev/ ~/filesystem/dev/
sudo mount -t proc procfs ~/filesystem/proc/
sudo cp /etc/resolv.conf ~/filesystem/etc/
sudo chroot ~/filesystem/ /bin/bash

此时,我们就已经在这个系统中了,我们可以按照我们的需求对系统进行任意的定制了。注意,直到文中提到退出chroot环境前,所有的命令都是在chroot中完成的。我们在科大,当然首先将sources.list修改为使用科大的源了:

sed -i 's/cn.archive.ubuntu.com/debian.ustc.edu.cn/g' /etc/apt/sources.list
sed -i 's#packages.deepin.org#debian.ustc.edu.cn/deepin#g' /etc/apt/sources.list.d/deepin.list
sed -i 's#packages.linuxmint.com#debian.ustc.edu.cn/linuxmint#g' mint.list
apt-get update

这篇文章里我们仅做演示用,所以不打算进行太多的定制,仅演示安装一个新的软件:

apt-get install vim

OK,定制完成啦!我们来重新封装文件系统。首先,退出chroot环境,并且卸载procdev文件系统。

exit
sudo umount ~/filesystem/proc/
sudo umount ~/filesystem/dev/

然后封装squashfs文件系统:

mv filesystem.squashfs old-filesystem.squashfs
sudo mksquashfs/ filesystem.squashfs

将新生成的filesystem.squashfs放到原来的位置,并将整个目录通过NFS导出。

这篇文章中将不介绍如何通过PXE启动这个系统,其方法与Ubuntu相同,网上有详细的教程。下一篇文章中,我们将会介绍如何进一步定制这个系统,在开机时,自动挂载科大提供给每个学生的300M FTP空间为HOME目录,文章中会稍微详细的介绍如何设置PXE服务器启动该系统。尽请期待!

原创文章,转载请注明: 转载自Linux User Group @USTC

本文链接地址: 定制PXE Live系统

2010年4月 Linux Install Party

Linux Install Party是中国科学技术大学Linux用户协会一年一度举办的活动,主旨在于推广和安装Linux,宣传和鼓励开源和自由软件精神。本次Linux Install Party主题是“草根低碳”。“草根”反映Linux目前已经逐渐平民化的特征,人们往往以为Linux是一个很高深的东西,这次party就是要把Linux带到同学们的身边。“低碳”反映了Linux创新的安装方式,以往安装Linux需要刻录光盘,费时费力不环保,这次party将宣传USB安装和网络安装的方法。本次活动可以让同学们亲身“无痛”体验到Linux,同时获得Linux的相关知识,并在安装Linux环节有专人指导。

由于活动之前通过海报、横幅、bbs进站画面等多种途径的宣传,再加上Mozilla中国中标软件等公司以及中国开源软件推进联盟的鼎力支持,以及校学生广告艺术协会等兄弟协会和合肥工业大学等兄弟院校同学的大力帮助,本次活动于2010年11月21日在3121教室成功举办,现场200名左右的同学和校友以及开软件软爱好者参加了活动。

本次活动由顾昊同学主持。在活动中,科大计算机系本科的张昊翀同学首先给大家详细介绍了Linux安装的相关知识,包括发行版的选择和如何分区。另外他还向大家介绍了grub的一些知识,例如如何设置默认启动项,如何修复grub以及如何删除grub并修复windows启动项。

紧跟着是趣味问答环节,该环节送出了Mozilla中国、中标软件等公司以及中国开源软件推进联盟赞助的礼物。该环节问了一些很有趣的问题,例如“列举5个以上Linux发行版”、“列举5个以上窗口管理器”、“一块硬盘最多能有几个主分区,为什么?”等等问题。同学们回答踊跃,现场气氛很热烈。

接着科大计算机系研究生张成同学给大家介绍并演示了PXE系统。张成同学现场显示了knoppix、中标普华、ubuntu、mint等操作系统,介绍了如何通过pxe安装linux,并展望了通过pxe建立全校无盘系统的愿景。

之后由祝元宠同学给大家带来了各个Linux发行版的简要介绍。接着便是活动的安装环节,有二十多位同学携带了笔记本电脑现场安装了Linux。同学们十分积极,气氛很热烈,活动从下午两点半持续到了五点半。之后有十几名热心志愿者参加了LUD(Linux User Dinner)聚餐,就Linux社区讨论了许多问题和展望,增进了技术和感情。

活动结束后一周,很多同学发帖询问Linux安装的相关问题,在bbs的Linux版掀起了一个安装Linux的小高潮。

以下是活动现场的照片:

原创文章,转载请注明: 转载自Linux User Group @USTC

本文链接地址: 2010年4月 Linux Install Party

2010年LUG服务器维护计划研讨会

2010年10月15日晚上,LUG在科大西区图书馆组织了服务器维护小组第一次例会,会议由LUG协会现任副会长张成同学主持,集中讨论了发展现有网络服务的计划。20余位LUG志愿者参加了本次会议。

张成首先介绍了现在学校linux 用户协会服务器现状,包括debian,oss,pxe,freeshell,lug.ustc等服务器的配置、历史介绍等。然后张成详细介绍了本学期服务器维护小组的工作计划,包括oss/debian系统和服务的更新以及pxe服务的改造构想。

活动计划介绍完之后,大家讨论了活动计划的具体开展方案,各位志愿者根据自己的兴趣爱好、以及服务器维护工作量大小等因素选择加入各个服务器的维护小组。各小组由现在的维护者担任组长,负责组织培训,活动通知等工作。 最后,张成同学做了pxe网络服务的专题讲座。pxe维护小组的同学以及其他感兴趣的同学认真听取了本次讲座。

本次活动从19:00持续到22:30,会议中大家进行了热烈讨论,积极要求参与到服务器的各项维护工作中,为本学年服务器维护工作的开展打下了一个良好的开端。会后部分志愿者还到活动室对将来需要用到的测试服务器等进行了实地考察。

原创文章,转载请注明: 转载自Linux User Group @USTC

本文链接地址: 2010年LUG服务器维护计划研讨会