封装Mac OS X 10.4和10.5

2023-05-06 01:37:11

 

前几天写了Mac OS 9封装的文章,或许有人还会有Mac OS X封装的需求。毕竟安装完Mac OS X后总有大量补丁要安装。特别是在G4机型上安装了10.5系统,升级10.5.8甚至需要几十分钟才能完成。如果安装了iLife和iWork,那么后续需要安装的补丁就更多了。那么如果我们按照自己的需求,安装完系统,安装最常用的软件,打完补丁之后,何不尝试将自己的成果保存起来,方便日后使用,避免不必要的重复劳动。

注:封装Mac OS X和Mac OS 9都可能会违反它们的许可协议,介意者可以不用继续看了。

注:本文章所涉及的方法仅在New world PowerPC Mac机型上测试过,不适用于Oldworld机型。至于Intel机型,可参考其方法,但是不建议在10.7和更高的版本上尝试。

更新:同样的方法可以封装Intel平台的10.6系统,不过恢复镜像后默认会是英文的。恢复镜像后,不要急着直接启动到系统,可以在启动时按住Command-S键进入单用户模式,运行 languagesetup命令,然后选择中文(单用户模式下没有加载字体于是屏幕上的显示会乱码),再退出单用户模式,继续加载系统,就是中文了。

如果只是一般的备份需求,直接在安装完系统后用Mac OS X安装盘启动系统,运行磁盘工具创建镜像,保存在电脑的其他分区或者外置磁盘上即可。但如果封装的镜像是用于分发,在不同机器上使用,那就要进行一些封装前的清理工作。总体来说,封装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)。因此在清理用户信息时,需要删除的文件是不同的。

那么我们先来看看封装Mac OS X的大致步骤。

安装系统和软件

首先,安装好Mac OS X系统,在安装时可以选择不安装打印机驱动和多余的语言包来节省空间。系统安装完后按照往常的方法来更新系统以及安装应用程序和补丁。由于安装Mac OS X组合更新后会安装部分不完整的语言包和其他架构的代码。 可以用Monolingual软件来清理多余的语言包,甚至可以清理不需要的架构。 如果想让镜像更小一些,而且没有多语言需求,可以删除除了中文(或其他目标语言)和英语之外的语言包,如果只是给PPC使用的话,可以删除系统中Intel和ARM架构的二进制代码。

注意,10.4系统除了Server版,都是不能通用于Intel和PPC的。预装10.4的Intel机型虽然系统是Universal的(同时包含PPC和x86两套架构),但其实并不能在PPC机型上启动(会因为内核扩展不兼容而五国)。因此不要尝试封装通用于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 ,以备后续清理系统时使用。

清理系统

完成上述步骤之后,开始封装前的准备工作——清理系统。退出当前的系统,按住Command+S键以单用户模式启动,也可以启动硬盘上的其他Mac OS X操作系统。

如果是单用户模式启动,按照屏幕上的提示检查磁盘并将根分区挂载为读写模式。

fsck -fy mount -uw / cd /

如果是启动了其他的操作系统,打开终端,(如果嫌每条命令都输入sudo太麻烦可以先运行sudo -i提权), 进入到目标系统所在的分区。

sudo -i cd /Volumes/分区名称

注意:后续的命令,不要在路径前加上 “/” ,如 "Users/用户名"写成"/Users/用户名"。否则,如果你是启动到了其他的Mac OS X(非目标磁盘),这些命令会删除你当前系统环境的相应目录,而不是目标系统的目录。

两个操作环境中执行的命令都大同小异。

删除临时用户的主目录

rm -rf Users/用户名

删除临时用户和用户组的数据库文件

如果是Mac OS X 10.4,执行以下代码,这删除整个NetInfo数据库,下次启动时会自动重建。

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文件中。因此还需要做的是用文本编辑器(vim, emacs, nano都行)编辑这些文件_appserveradm.plist, _appserverusr.plist, _lpadmin.plist, admin.plist, com.apple.sharepoint.group.1.plist和staff.plist,找到<key>users</key>,删除其中<string>用户名</string>的行,文件如下所示

<key>users</key> <array> <string>username</string> </array>

以上每个文件都要删除那些行含有当前用户名的行。

于是,如果安装系统时(运行设置助理之前)备份过dslocal目录,可以先删除整个dslocal目录,然后将备份的dslocal.backup目录重命名为dslocal。

rm -rf var/db/dslocal mv var/db/dslocal.backup /var/db/dslocal

据说有前人删除过整个dslocal目录,结果翻车了。可能是Mac OS X 10.5不像10.4,在这些数据库删除后会自动重建数据库。

实测,如果暴力删除整个dslocal目录,设置助理会卡死在这一步,点击下一步后鼠标无限“风火轮”

如果不想通过暴力的方式来删除用户和用户组,可以参考这篇文章,在单用户模式中加载Directory Service,通过dscl命令来管理用户和用户组。毕竟Mac OS X和其他的*nix不一样,上层不是使用passwd和shadow机制,而是自己的一套机制。

删除系统配置文件

注,如果安装了iWork和iLife,应先备份Library/Preferences目录下的相应文件,否则删除后可能导致这些软件无法使用。

rm -rf Library/Preferences/*

如果安装了iWork和iLife,将之前备份的配置文件恢复到这个目录中。

删除缓存文件和虚拟内存文件

rm -rf Library/Cache/* rm -rf System/Library/Cache/* rm -rf System/Library/Extensions.kernelcache rm -f System/Library/Extensions.mkext rm -rf var/vm/* rm -rf tmp/*

删除.AppleSetupDone

最后,删除.AppleSetupDone文件。系统启动时没有检测到这个文件的存在,则会打开设置助理程序,进行一些基本设置并创建用户账户。

rm var/db/.AppleSetupDone

封装系统

完成上述清理工作之后,就可以开始用磁盘工具清理系统了。如果当前是在单用户模式下,运行reboot命令关机,之后用Mac OS X安装光盘启动电脑,然后打开“实用工具”菜单下的“磁盘工具”。如果当前启动到了其他Mac OS X系统中,可以直接打开“磁盘工具”。

打开磁盘工具后,先在左边的分区列表中选中需要封装的分区,再在“文件”, “新建镜像”菜单中选择第三项“xxxx的镜像”。设置保存位置和文件名,再在“格式”中选择“压缩”,最后保存镜像。

恢复系统

镜像可以保存在U盘和火线硬盘上,下次安装系统时用Mac OS X安装盘启动,再打开磁盘工具,右侧分区列表中选择需要恢复的分区。先抹掉分区,再点击右侧“恢复”标签(即选项卡),选择源镜像,再将左侧分区列表中需要恢复的分区拖动到右侧的目标磁盘中。恢复时可以不勾选“抹掉目标磁盘”选项以节省时间。

制作启动盘

如果机器只提供了USB 1.1接口或者没有火线硬盘盒,那么从USB恢复镜像将会漫长的等待。此时可以考虑制作启动光盘。其实只需要用Mac OS X 10.4.6的安装盘即可。但是制作过程相对复杂,需要用磁盘工具给Mac OS X 10.4.6的安装盘制作镜像,再删除Xcode和其余软件的安装包,只留一个基本系统,然后把恢复镜像放到光盘根目录下。

具体需要删除光盘镜像目录下的Xcode Tools文件夹,再删除光盘System/Installation/Packages目录下除了OSInstall.mpkg以外的文件。其实也可以把OSInstall.mpkg中的说明文件给改一改,编辑这个软件包的Resource目录中的每个语言的lproj目录中的Welcome.rtfd文件(系统自带的文本编辑工具即可),使之变得有趣一些。

当然,保留这些包也可以,但会增加ISO的文件大小。用磁盘工具创建磁盘镜像时要注意镜像文件的大小,超出光盘介质的容量上限就麻烦了。早期的Mac机型不支持DVD-9光碟,因此要想办法把镜像体积控制在DVD-5盘的体积内。

最后制作完成后就可以刻录到光盘了,光盘启动后运行的还是安装程序,但是删掉了具体的安装包,肯定会安装失败,再说我们需要用的只是它的基本系统和磁盘工具。 当然,有经验的用户还可以尝试制作Mac PE盘,虽然说安装盘自带的工具就基本能满足需求了。

按照惯例,还是给出我制作的镜像和“启动盘”来抛砖引玉。

前略/s/1XEOLcljXjigAC6G6TKTYZQ ,我想大家应该知道这是某无良度的链接,文件暗号是 d32s。都是安装过系统和软件更新的。里面的文件名可能比较迷,先解释一下:

Leopard with Installer.cdr.zip #Mac OS X安装器光盘,含10.5.8镜像(仅系统 无第三方软件)。 Mac10.4.11bootable_with_installer.dmg.zip #Mac OS X 安装盘,含有10.4.11的基本系统镜像。 Tiger 10.4.11.dmg #封装好的系统镜像,只是镜像文件,不含启动盘的,适合放U盘或火线硬盘上。 Mac OS X Tiger with iApps.dmg #同样是封装好的镜像,但安装了iLife 08和iWork 09。 OS X Leopard.dmg #里面包含10.5.8的基本系统,也只是封装后的镜像而已。 OSXLeopard_with_iApps.dmg #含有10.5.8安装了iLife 09和IWork 09的系统镜像。

其中Leopard(10.5)的镜像只删了用户信息,没有删除用户组的数据(于是不够干净),尽管不影响使用,有洁癖的用户可以参照上文方法自行将临时账户“mac”从各个用户组中删去。而Tiger (10.4)镜像则删除了整个NetInfo数据库(这种行为不够优雅),可以放心使用(划掉)。另外,预装iLife的镜像,都对iMovie的可执行程序进行了破解,允许在G4机型上运行。不过不要作死,这些版本的iMovie都采用了H.264编码器,G4没有这么强的算力(实际上G4 1.5上导出个1分半钟的视频就用了一个多小时),因此这么做只是要一个好看的iMovie图标而已。(原版iLife 08和09带的iMovie要求至少G5处理器,而iLife 06带的iMovie HD才适合G4,iMovie HD在Tiger的镜像中预装了。)

本文(不包括附带的专有内容)采用知识共享 署名-相同方式共享 4.0 国际许可协议进行许可。


以上就是关于《封装Mac OS X 10.4和10.5》的全部内容,本文网址:https://www.7ca.cn/baike/22546.shtml,如对您有帮助可以分享给好友,谢谢。
标签:
声明