牛骨文教育服务平台(让学习变的简单)

Mac OS X 10.5 Fast System Deployment Practice
Mac OS X 10.5快速系统部署实践

注:
前一篇在这里: Mac OS X 10.5快速系统部署实践-计划(2) v1

制作核心系统镜象

Core System Image

   我们这里使用的系统镜象(SystemImage)概念是指:一个储存电脑磁盘系统和配置的文件,并且从该文件恢复到磁盘后,电脑可以按照原来预定的方式运行。普通来说就是使用克隆方法复制系统的文件。在Windows中有以前的Ghost方式,后来微软开发了基于文件方式的WIM文件结构。在Mac系统上一般使用DMG文件格式。当然了DMG文件不仅可以用于保存系统镜象,而且可以用作好多其它用途,还可以加密内容。

   为什么要使用系统镜象,不能从安装盘重新安装吗?原因很简单,重新安装的系统还需要客户化的设置并测试,之后用户才能使用,客户化这一点在企业中尤其突出。设想有1000台计算机需要分配到不同的部门,如果是一台一台地安装并配置,一是时间人力浪费,二是无法保证配置的前后一致性。听上去好像和品牌机批量生产一样,但那是另外一个故事了。总之,可以说有了系统镜象技术,使得系统的部署和排错变得简易可行。(注:这一点在我的其它Blog中有专门的详述)

   有了系统镜象,还要有一套方法来恢复这个镜象到目标机,从而获得和原系统一样并且可以使用的一个新系统。在Windows世界里Ghost一般是大家都了解的,还有好多其它第三方厂商产品可以选择,也可以使用微软提供的免费BusinessDeploy方法。对于Mac系统,也有众多的软件和方法,其中一般都是用Apple的ASR (Apple SoftwareRestore)作为基础,ASR可以同时作为制作和恢复的手段. 在后面我们可能很少谈及ASR,但是不意味着它没有用途.

   为什么在标题中还要加一个“核心”的定语呢?在你了解和掌握了这里所说的系统镜象制作后,很可能会想,我把公司所有软件和配置都做好了,然后作一个系统镜象,这样如果机器需要重新格式化,不就简单了?就我的经验,在某些场合,这样做是一个很好的方法,而且部署起来最快,也简单有效。但是多数情景是,系统和软件等等方面需要更新,这样很多时候只是制作一个核心的系统镜象,然后使用其它方式安装应用软件和更新等,是一个比较好的方式,可以减少对镜象文件的维护工作,而经历可以放在制作测试新的软件包。

   在我的工作实践和体会是,在一个企业中制作了一个核心镜象之后,还有可能根据不同部门的需要(好多时候是技术原因,不得不),做一个部门的系统镜象,以满足部门特殊需要。就核心系统镜象来说,它的制作是整体部署中非常关键的一步,也是需要知识面和经验比较全面的部分,有可能需要要求制作人员具有一定的shell编程能力,还需要对不同版本的系统有比较深的了解,并能够在不同系统版本中实现同一个目标。

    下面我们来一步一步地解释制作核心系统镜象文件的步骤,以及需要慎重考虑的最重要的部分,当然了难免有疏漏.

    当然了还有其他的方法可以用来制作核心系统镜像文件,这在后面再提及。

软硬件环境选择

电脑硬件

    在前面的计划中已经提到了,针对Mac系统的特点,需要我们使用公司内最新的电脑硬件,以及可以找到的最新的操作系统,这样可以最大地保证,制作完的系统镜象可以被普遍应用于其它电脑上。

    当然,有的时候可能也不能这样,尤其是在企业内部使用硬件年代跨度比较大的情况时,有可能需要在最新系统已经不支持的系统上,制作旧版本操作系统的一个镜象,以用于陈旧的系统。比如, Mac OS X 10.5 Leopard操作系统,要求CPU是PowerPC G4 867MHz以上的,对于旧的硬件,如iMac G3等系统,就需要准备一个10.4甚至10.3的系统镜象,直到企业替换完最后一批旧系统之后,才可以放弃对那个旧系统的系统镜象维护。

系统和分区

   找到硬件,首先要做的就是重新安装系统。建议对磁盘内容删除并重新分区,这样可以确保可以得到一个干净的系统。Mac的系统镜象制作是基于分区的,所以如果是一个大磁盘,简易分三个分区,一个是系统镜象分区,系统镜象就从这个分区得到,为了后面简单叙述,我们使用Mac默认的分区名:MacintoshHD. 一个是数据分区,我们叫它: Data. 最后一个是制作磁盘镜象的工作分区,叫做:Work. 其中Macintosh HD和Work两个分区都要安装Mac OS X操作系统,而且最好是相同版本的系统.

    分区类型建议使用Mac OS Extended(Journaled), 不建议使用Mac OS Extended(Case-Sensitive, Journaled), 原因很简单,大小写敏感的有可能造成有的程序运行失败。尤其是编写不严格规范的脚本程序。

   就目前Mac OS X Leopard的系统来说,一个磁盘镜象的大小从7GB到10多个GB不等-这要根据具体情况差异会很大.安装完后系统占至少9GB左右的磁盘空间,所以那两个分区的磁盘空间至少要10GB左右,而制作磁盘镜象的过程中需要生成中间文件等,所以需要几乎是2倍系统所占磁盘空间的大小,也就是说,如果最终要制作系统镜象的磁盘,有12GB被系统和数据占用,那么保存磁盘镜象文件的分区至少要有24GB的空余空间可用。

    在安装Mac OS X系统的时候,有可选的安装包,用户根据需要选择安装,比如字体,打印机,X11和语言的选择。在保证系统最大适应性的同时,尽量少地安装各种软件,这样既避免空间浪费,也避免部署的资源占用浪费.

系统更新

   一般来说,Mac的升级都是通过系统更新包的方式提供更新,有的是combo的更新包,这种更新包可以跨越不同的版本直接升级到最新的版本。在准备系统镜象的时候,找到最新的系统安装盘,使用系统更新功能,下载更新包,或者到Apple.com官方网站去检查系统更新,并下载保留。

   Mac OS X带有系统更新功能,从屏幕左上角的菜单的第二项就是Software Update,点击运行,默认地它会到Apple的更新服务器去查找相关本机硬件和系统软件的更新,其中有个选项可以保留下载的更新包,见下图。后面我们可以讲到如何配置系统到制定的提供更新服务的企业服务器寻找更新。

    如果企业内部使用Mac OS X Server提供的Update Server服务,从而实现对更新的统一管理,那么可以在Workgroup Manager里面进行设置。

    对于制作一般的核心镜像,应该禁止自动更新,采用手动(Manual)方式。

 

本地用户

    对于本地帐户,我建议尽量少用,甚至不用。因为对于本地帐户的管理,可能会花费管理员更多的时间精力,而且也不太利于远程管理,也不易实现遵守企业安全规范. 但是还是有些情况需要使用本地用户的。

使用GUI图形界面

    使用Mac OS X提供的图形界面生成一个普通帐户是最简单的方式了,下面只给出一个屏幕截图,相信都知道怎么建立。

 

使用shell命令

    完全可以用shell命令来完成初步的帐户建立:

sudo -s

dscl . -create /Users/zhangsan

dscl . -create /Users/zhangsan UserShell /bin/bash

dscl . -create /Users/zhangsan RealName "Zhang San"

dscl . -create /Users/zhangsan UniqueID 1000

dscl . -create /Users/zhangsan PrimaryGroupID 20

dscl . -create /Users/zhangsan NFSHomeDirectory /Users/zhangsan

dscl . -passwd /Users/zhangsan "SysAdm1n"

dscl . -append /Groups/staff GroupMembership zhangsan

 

cp -R /System/Library/User/ Template/English.lproj /Users/zhangsan

chown -R zhangsan /Users/zhangsan

    上面的bash脚本创建了真实姓名是"张三",Unix用户名是zhangsan的,Unix唯一ID是1000的,普通的本地帐户。

 

 

登陆选项

   一般地,我们不使用自动登录(Automatic Login)功能,而且登陆界面也不使用用户列表(List of Users)功能,禁止Fast User Switching. 上面都可以在System Preferences->Accounts里的LoginOptions找到设置。或者使用下面的命令行命令来设置:

sudo defaults delete /Library/Preferences/com.apple.loginwindow autoLoginUse
sudo defaults write /Library/Preferences/com.apple.loginwindow SHOWFULLNAME/ -bool true
sudo defaults write /Library/Preferences/com.apple.loginwindow showInputMenu/ -bool true
sudo defaults write /Library/Preferences/.GlobalPreferences/ MultipleSessionEnabled -bool False

注:在10.5.7版本中添加了一个"Allow network users to login to this computer",默认是选择的,这个选项对于一般情况要选上。

    上面推荐的设置对于不同的需求会有不同的配置要求,比如作为公共Lab或者Kiosk机的时候,自动登录和禁止"Allow network users to login to this computer"就有可能是必需的选项了。

 

续:Mac OS X 10.5快速系统部署实践-制作核心系统镜像(2) v1

 

 

 

Tony Liu

2009 Calgary