OS X Lion狮子安装盘的初步研究

最后更新于:2022-04-01 10:56:49

狮子的安装会自动在硬盘中生成一个650MB的恢复盘分区,这个分区在正常的GUI界面中是看不见的。使用下面的语句可以看见硬盘的分区情况: diskutil list 这样可以看到这个隐藏的分区的名称是Recovery HD 使用命令来安装到GUI中(比如我的是disk1s4): diskutil mount disk1s4 进入后,下面是它的根里面的内容: d-wx-wx-wt@ 3 root  _unknown  hidden 102  2 Jul 22:52 .Trashes drwxr-xr-x@ 3 root  admin     -      102  2 Jul 16:16 .fseventsd -rw-r--r--@ 1 root  admin     -        0  2 Jul 16:16 .metadata_never_index drwxr-xr-x@ 9 root  admin     -      306  2 Jul 16:17 com.apple.recovery.boot 在com.apple.recovery.boot目录里面的内容: total 930040 drwxr-xr-x@ 9 root  admin        306  2 Jul 16:17 . drwxrwxr-x  8 root  admin        340  2 Jul 16:16 .. -rw-r--r--@ 1 root  admin        749  2 Jul 16:17 .disk_label -rw-r--r--@ 1 root  wheel  451307798  2 Jul 16:07 BaseSystem.dmg -rw-r--r--@ 1 root  wheel       2245 15 Jun 19:06 PlatformSupport.plist -r--r--r--@ 1 root  wheel        475 29 Jun 21:42 SystemVersion.plist -rw-r--r--@ 1 root  wheel     858800 30 Jun 00:04 boot.efi -rw-r--r--@ 1 root  admin        361  2 Jul 16:17 com.apple.Boot.plist -rw-r--r--@ 1 root  wheel   23992189 29 Jun 23:41 kernelcache 这里就是启动盘的所有内容了。 看看每个文件的内容: SystemVersion.plist : <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict>     <key>ProductBuildVersion</key>     <string>11A511</string>     <key>ProductCopyright</key>     <string>1983-2011 Apple Inc.</string>     <key>ProductName</key>     <string>Mac OS X</string>     <key>ProductUserVisibleVersion</key>     <string>10.7</string>     <key>ProductVersion</key>     <string>10.7</string> </dict> </plist> PlatformSupport.plist 它和安装盘中的是一样的内容,里面是所支持的硬件主板id号列表 com.apple.Boot.plist :是控制如何使用这个BaseSystem.dmg文件来启动系统恢复程序的 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict>     <key>Kernel Cache</key>     <string>\com.apple.recovery.boot\kernelcache</string>     <key>Kernel Flags</key>     <string>rp=file:///com.apple.recovery.boot/BaseSystem.dmg</string> </dict> </plist> 再将BaseSystem.dmg安装到GUI中,可以看到这个图 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-19_57158f50e2b62.gif) 就是一个核心系统,它自动运行Insall Mac OS X Lion.app程序,来恢复系统。不过这个恢复的过程需要从App Store下载安装的方式。 Install Mac OS X Lion.app运行的画面就是在安装过程中的画面: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-19_57158f51132f6.gif) 回头看看ESD安装盘的内容,上面的这些文件都可以在ESD安装盘上找到: total 960568 drwxrwxr-t  20 root      admin           748  2 Jul 15:48 . drwxrwxrwt@  9 root      admin           306  2 Jul 22:58 .. -rw-r--r--@  1 dd        admin         15364  2 Jul 23:17 .DS_Store drwx------   5 _unknown  _unknown        170  2 Jul 17:27 .Spotlight-V100 d-wx-wx-wt@  3 _unknown  _unknown        102  2 Jul 21:59 .Trashes -rwxr-xr-x@  1 root      wheel            82 13 Jun 12:47 ._Instructions.localized -rw-r--r--@  1 root      admin           581 30 Jun 00:55 .disk_label drwx------   6 _unknown  _unknown        204  2 Jul 17:53 .fseventsd -rw-r--r--@  1 root      admin          1876 30 Jun 00:55 BaseSystem.chunklist -rw-r--r--@  1 root      admin     451307798 30 Jun 00:47 BaseSystem.dmg drwxr-xr-x@  3 root      wheel           102 29 Jun 20:24 Install Mac OS X Lion.app drwxr-xr-x@  4 root      wheel           136  2 Jul 23:17 Library -r--r--r--@  1 root      wheel         46516  8 Jun  2010 MacOSX_Media_Background.png drwxr-xr-x@ 51 root      wheel          1734 30 Jun 00:55 Packages drwxr-xr-x@  3 root      wheel           102 16 Jun 17:07 System -rw-r--r--@  1 root      admin        858800 30 Jun 00:52 boot.efi -rw-r--r--@  1 root      admin      23992189 30 Jun 00:54 kernelcache -rw-r--r--@  1 root      wheel      15565140 18 Jun 13:59 mach_kernel drwxr-xr-x@  3 root      wheel           102 16 Jun 16:57 private drwxr-xr-x@  4 root      wheel           136 30 Jun 00:52 usr 对比一下10.6和10.7的boot.efi文件的大小: 10.6的Boot.efi文件大小是332464 bytes,而Lion的是858800 bytes. ESD中的com.apple.Boot.plist在/Library/Preferences/SystemConfiguration/里面 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict>     <key>Kernel Flags</key>     <string>root-dmg=file:///BaseSystem.dmg</string>     <key>Kernel Cache</key>     <string>\kernelcache</string> </dict> </plist> 它和上面的恢复盘的内容有些差别,路径不一样,而且参数也不一样,一个是root-dmg一个是rp 另外,Lion增加了一个硬盘检测的程序叫做hwmond 安装盘的硬件检测部分: /System/Library/Launchdaemons/com.apple.hwmond.plist cat /Volumes/Mac\ OS\ X\ Install\ ESD/System/Library/LaunchDaemons/com.apple.hwmond.plist <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict>     <key>Label</key>     <string>com.apple.hwmond</string>     <key>OnDemand</key>     <false/>     <key>Program</key>     <string>/usr/sbin/hwmond</string>     <key>ProgramArguments</key>     <array>         <string>hwmond</string>     </array>     <key>ServiceIPC</key>     <false/> </dict> </plist> 它的硬件测试返回代码:/Volumes/Mac\ OS\ X\ Install\ ESD/private/etc/hwmond.SMART 通过比较安装盘和恢复盘的两个Install Mac OS X Lion.app是完全一样的. 这个BaswSystem.dmg对于管理环境中的系统恢复会是比较有用的。
';