|
& g6 \* a( E2 @- V% e) }( Z
前几天写了Mac OS 9封装的文章,或许有人还会有Mac OS X封装的需求毕竟安装完Mac OS X后总有大量补丁要安装特别是在G4机型上安装了10.5系统,升级10.5.8甚至需要几十分钟才能完成。
2 `- i; s9 R. I4 v1 y# u9 I& r# y 如果安装了iLife和iWork,那么后续需要安装的补丁就更多了那么如果我们按照自己的需求,安装完系统,安装最常用的软件,打完补丁之后,何不尝试将自己的成果保存起来,方便日后使用,避免不必要的重复劳动注:封装Mac OS X和Mac OS 9都可能会违反它们的许可协议,介意者可以不用继续看了。 * j; A9 d5 W4 h$ l L! t
注:本文章所涉及的方法仅在New world PowerPC Mac机型上测试过,不适用于Oldworld机型至于Intel机型,可参考其方法,但是不建议在10.7和更高的版本上尝试更新:同样的方法可以封装Intel平台的10.6系统,不过恢复镜像后默认会是英文的。 7 H) U. N X; L- \4 }+ b$ J7 _+ p
恢复镜像后,不要急着直接启动到系统,可以在启动时按住Command-S键进入单用户模式,运行 languagesetup命令,然后选择中文(单用户模式下没有加载字体于是屏幕上的显示会乱码),再退出单用户模式,继续加载系统,就是中文了。
8 |; Q2 Y) d% Q' N 如果只是一般的备份需求,直接在安装完系统后用Mac OS X安装盘启动系统,运行磁盘工具创建镜像,保存在电脑的其他分区或者外置磁盘上即可但如果封装的镜像是用于分发,在不同机器上使用,那就要进行一些封装前的清理工作。
/ {7 l/ q3 l( I" s7 e. Z1 L/ I 总体来说,封装Mac OS X比封装Windows NT系统简单多了,不需要卸载设备驱动和补充磁盘驱动那么,封装10.4和10.5的方法大致是一样的,部分细节不同比如说删除用户信息时,Mac OS X 10.4还是用NeXT的那套“NetInfo”机制来管理用户、用户组和打印机等资源,而Mac OS X 10.5则改用Open Directory机制来管理了(确切说应该是本地Directory Service)。 ) y% s' L) k; V
因此在清理用户信息时,需要删除的文件是不同的那么我们先来看看封装Mac OS X的大致步骤安装系统和软件首先,安装好Mac OS X系统,在安装时可以选择不安装打印机驱动和多余的语言包来节省空间系统安装完后按照往常的方法来更新系统以及安装应用程序和补丁。
. y9 Y& v4 G5 k& b, \- ^ 由于安装Mac OS X组合更新后会安装部分不完整的语言包和其他架构的代码 可以用Monolingual软件来清理多余的语言包,甚至可以清理不需要的架构 如果想让镜像更小一些,而且没有多语言需求,可以删除除了中文(或其他目标语言)和英语之外的语言包,如果只是给PPC使用的话,可以删除系统中Intel和ARM架构的二进制代码。
: [% O& ?; D1 K" Z; W# E/ m 注意,10.4系统除了Server版,都是不能通用于Intel和PPC的预装10.4的Intel机型虽然系统是Universal的(同时包含PPC和x86两套架构),但其实并不能在PPC机型上启动(会因为内核扩展不兼容而五国)。
/ i& {, B a/ D 因此不要尝试封装通用于Intel和PPC的10.4镜像 10.5系统可以通用于Intel和PPC,如果需要封装universal版,则不能删除Intel架构的二进制代码注意,安装完Mac OS X 10.5系统后建议在进入系统前(设置助理运行前),先用单用户模式启动,备份var/db/dslocal目录,例如运行 cp -a /var/db/dslocal /var/db/dslocal.backup ,以备后续清理系统时使用。 5 P) b4 v7 J' c5 E' z
清理系统完成上述步骤之后,开始封装前的准备工作——清理系统退出当前的系统,按住Command+S键以单用户模式启动,也可以启动硬盘上的其他Mac OS X操作系统如果是单用户模式启动,按照屏幕上的提示检查磁盘并将根分区挂载为读写模式。
! f5 ?2 s: e! Q: W9 \7 N/ T fsck -fy
) ]# \) u: i; m mount -uw /# B3 L/ s* m# L/ N% @$ ^6 P* t) X
cd /如果是启动了其他的操作系统,打开终端,(如果嫌每条命令都输入sudo太麻烦可以先运行sudo -i提权), 进入到目标系统所在的分区sudo -i
6 y7 F) X$ n1 C: e. Y4 d+ r. L) ` cd /Volumes/分区名称。
8 o3 u0 @1 `1 m4 K. z 注意:后续的命令,不要在路径前加上 “/” ,如 "Users/用户名"写成"/Users/用户名"否则,如果你是启动到了其他的Mac OS X(非目标磁盘),这些命令会删除你当前系统环境的相应目录,而不是目标系统的目录。 3 j! y3 I! i9 b2 H( }6 q
两个操作环境中执行的命令都大同小异删除临时用户的主目录rm -rf Users/用户名删除临时用户和用户组的数据库文件如果是Mac OS X 10.4,执行以下代码,这删除整个NetInfo数据库,下次启动时会自动重建。
' }. [) h8 W) k& c2 I$ B rm -rf var/db/netinfo/local.nidb如果是10.5系统,执行以下代码rm -f var/db/dslocal/nodes/Default/users/用户名.plist此外,10.5系统的用户组信息放在了var/db/dslocal/nodes/Default/groups中,每个组的信息也是存放在plist文件中。 1 ?& g8 p& o* q, r& I4 y
因此还需要做的是用文本编辑器(vim, emacs, nano都行)编辑这些文件_appserveradm.plist, _appserverusr.plist, _lpadmin.plist, admin.plist, com.apple.sharepoint.group.1.plist和staff.plist,找到users,删除其中用户名的行,文件如下所示。
3 }6 j6 M) N4 e users1 K0 ~/ m3 Z1 ~, G/ o
+ T( N+ z* b( e5 p" _* e
username
6 H+ P7 Y [5 d 以上每个文件都要删除那些行含有当前用户名的行于是,如果安装系统时(运行设置助理之前)备份过dslocal目录,可以先删除整个dslocal目录,然后将备份的dslocal.backup目录重命名为dslocal。 c9 z& P d$ i7 d
rm -rf var/db/dslocal
+ `2 H# \' Q% X# T mv var/db/dslocal.backup /var/db/dslocal据说有前人删除过整个dslocal目录,结果翻车了可能是Mac OS X 10.5不像10.4,在这些数据库删除后会自动重建数据库。 ; R" r8 }4 m2 `% O2 D, `4 ?- q: N
实测,如果暴力删除整个dslocal目录,设置助理会卡死在这一步,点击下一步后鼠标无限“风火轮”如果不想通过暴力的方式来删除用户和用户组,可以参考这篇文章,在单用户模式中加载Directory Service,通过dscl命令来管理用户和用户组。 1 k# S$ j' s& j
毕竟Mac OS X和其他的*nix不一样,上层不是使用passwd和shadow机制,而是自己的一套机制删除系统配置文件注,如果安装了iWork和iLife,应先备份Library/Preferences目录下的相应文件,否则删除后可能导致这些软件无法使用。 $ X; \( p, J/ D& ]2 e( N: |) ?
rm -rf Library/Preferences/*如果安装了iWork和iLife,将之前备份的配置文件恢复到这个目录中删除缓存文件和虚拟内存文件rm -rf Library/Cache/*
* a4 Q1 R! m9 G rm -rf System/Library/Cache/*
: @# Y) A& s9 {( e1 j rm -rf System/Library/Extensions.kernelcache
$ v- d ?7 j. h& X+ l8 @ N rm -f System/Library/Extensions.mkext
9 w1 a7 v& o. K% h' D: ?4 S rm -rf var/vm/*
% k4 ~: m8 n& R) W8 |7 a rm -rf tmp/*。 - C. _4 c d2 n2 p2 z* G
删除.AppleSetupDone最后,删除.AppleSetupDone文件系统启动时没有检测到这个文件的存在,则会打开设置助理程序,进行一些基本设置并创建用户账户rm var/db/.AppleSetupDone。
" K# x" c& }& r) Y0 d4 [ 封装系统完成上述清理工作之后,就可以开始用磁盘工具清理系统了如果当前是在单用户模式下,运行reboot命令关机,之后用Mac OS X安装光盘启动电脑,然后打开“实用工具”菜单下的“磁盘工具”如果当前启动到了其他Mac OS X系统中,可以直接打开“磁盘工具”。
8 M. d$ N1 u- c+ Y# d 打开磁盘工具后,先在左边的分区列表中选中需要封装的分区,再在“文件”, “新建镜像”菜单中选择第三项“xxxx的镜像”设置保存位置和文件名,再在“格式”中选择“压缩”,最后保存镜像恢复系统镜像可以保存在U盘和火线硬盘上,下次安装系统时用Mac OS X安装盘启动,再打开磁盘工具,右侧分区列表中选择。
* F E9 Z" }" w8 `2 \: e6 n3 x 需要恢复的分区先抹掉分区,再点击右侧“恢复”标签(即选项卡),选择源镜像,再将左侧分区列表中需要恢复的分区拖动到右侧的目标磁盘中恢复时可以不勾选“抹掉目标磁盘”选项以节省时间制作启动盘如果机器只提供了USB 1.1接口或者没有火线硬盘盒,那么从USB恢复镜像将会漫长的等待。 ; ?! S: Z! t4 C( j
此时可以考虑制作启动光盘其实只需要用Mac OS X 10.4.6的安装盘即可但是制作过程相对复杂,需要用磁盘工具给Mac OS X 10.4.6的安装盘制作镜像,再删除Xcode和其余软件的安装包,只留一个基本系统,然后把恢复镜像放到光盘根目录下。 $ x; {1 j' F! K9 H/ y
具体需要删除光盘镜像目录下的Xcode Tools文件夹,再删除光盘System/Installation/Packages目录下除了OSInstall.mpkg以外的文件其实也可以把OSInstall.mpkg中的说明文件给改一改,编辑这个软件包的Resource目录中的每个语言的lproj目录中的Welcome.rtfd文件(系统自带的文本编辑工具即可),使之变得有趣一些。
- P2 @, j2 H+ @" A! r 当然,保留这些包也可以,但会增加ISO的文件大小用磁盘工具创建磁盘镜像时要注意镜像文件的大小,超出光盘介质的容量上限就麻烦了早期的Mac机型不支持DVD-9光碟,因此要想办法把镜像体积控制在DVD-5盘的体积内。
6 N6 }: x4 {0 C- H) | 最后制作完成后就可以刻录到光盘了,光盘启动后运行的还是安装程序,但是删掉了具体的安装包,肯定会安装失败,再说我们需要用的只是它的基本系统和磁盘工具 当然,有经验的用户还可以尝试制作Mac PE盘,虽然说安装盘自带的工具就基本能满足需求了。 . i/ g/ E- p, {" q& o
按照惯例,还是给出我制作的镜像和“启动盘”来抛砖引玉前略/s/1XEOLcljXjigAC6G6TKTYZQ ,我想大家应该知道这是某无良度的链接,文件暗号是 d32s都是安装过系统和软件更新的里面的文件名可能比较迷,先解释一下: 。 # N6 ^6 H( M! |- h9 G
Leopard with Installer.cdr.zip #Mac OS X安装器光盘,含10.5.8镜像(仅系统 无第三方软件); ]6 V$ ?2 X, r* Y0 W
Mac10.4.11bootable_with_installer.dmg.zip #Mac OS X 安装盘,含有10.4.11的基本系统镜像。 2 w" e. c/ V0 @% i
2 s2 k& C: X; P& n Tiger 10.4.11.dmg #封装好的系统镜像,只是镜像文件,不含启动盘的,适合放U盘或火线硬盘上( J X! _/ i3 d7 {
Mac OS X Tiger with iApps.dmg #同样是封装好的镜像,但安装了iLife 08和iWork 09。 ; g. x% a& i9 x3 R7 ~3 I) x6 |
0 |6 G! o" T8 J
OS X Leopard.dmg #里面包含10.5.8的基本系统,也只是封装后的镜像而已
" {2 R1 E7 U& L1 Y OSXLeopard_with_iApps.dmg #含有10.5.8安装了iLife 09和IWork 09的系统镜像。
h; S7 S1 K9 D, l 其中Leopard(10.5)的镜像只删了用户信息,没有删除用户组的数据(于是不够干净),尽管不影响使用,有洁癖的用户可以参照上文方法自行将临时账户“mac”从各个用户组中删去而Tiger (10.4)镜像则删除了整个NetInfo数据库(这种行为不够优雅),可以放心使用(划掉)。 " F" G6 l0 D9 C4 d* j& I
另外,预装iLife的镜像,都对iMovie的可执行程序进行了破jie,允许在G4机型上运行不过不要作死,这些版本的iMovie都采用了H.264编码器,G4没有这么强的算力(实际上G4 1.5上导出个1分半钟的视频就用了一个多小时),因此这么做只是要一个好看的iMovie图标而已。
! u, i9 s. a- C# r3 U N9 n! O- m (原版iLife 08和09带的iMovie要求至少G5处理器,而iLife 06带的iMovie HD才适合G4,iMovie HD在Tiger的镜像中预装了)本文(不包括附带的专有内容)采用知识共享 署名-相同方式共享 4.0 国际许可协议
8 w- b6 i7 h( d9 C9 S$ _& l 进行许可。 . s# B6 A& j0 l
. h9 p" ]& j; V7 @+ Z3 ?! i( k/ e2 C/ V* Y/ \# ]
" d1 D& g$ p/ [" D* P8 \
3 G5 |. ~; y5 D; W5 C; F4 l) i |