For those already using Parallels Mac Management for SCCM here’s a little guide for creating the boot image and netrestore image.
Boot Image
Build and start a clean Mac with latest OS X version.
Login with the admin user and create the following folders in Documents:
- Boot
- SSHKeys
Open the Terminal application.
Navigate to the SSHKeys folder.
Example: “cd /Users/%accountname%/Documents/SSHKeys/”
Run the following command:
ssh-keygen -t rsa
When asked about filename just enter id_rsa.
When asked about a passphrase just press enter for default selection which is blank.
In the SSHKeys folder there should now be two files located:
- id_rsa
- id_rsa.pub
In Safari enter the URL for downloading the PmmOsdImageBuilder.dmg file:
http://server.domain.com:8761/files/PmmOsdImageBuilder.dmg
When downloaded mount the PmmOsdImageBuilder.dmg file.
In the Terminal application navigate to the mounted folder.
Example: “cd /Volumes/Parallels OSD Image Builder 4.0.1.31/”
Run the following command:
sudo ./pmm_osd_image_builder netboot -n [output-dir] --ntp-servers [ntp_servers] --ssh-authkeys [ssh_keys_file]
[output-dir] – Is a local folder on the Mac device, in this case the local folder we created called Boot. Example Path: “/Users/%accountname%/Documents/Boot/”
[ntp-servers] – Is a given NTP server/service used. Example: “time.euro.apple.com”
[ssh_keys-file] – Is the location to where SSH keys can be accessed, in this case we created them in the SSHKeys folder. Example Path: “/Users/%accountname%/Documents/SSHKeys/id_rsa”
Finalized command:
sudo ./pmm_osd_image_builder netboot -n /Users/Admin/Documents/Boot/ --ntp-servers time.euro.apple.com --ssh-authkeys /Users/Admin/Documents/SSHKeys/id_rsa
Verify that the command executed without any errors or missed actions.
Copy the contents of the Boot folder to the SCCM Server.
Netrestore Image
Build a Mac device with 2 partitions:
- OS – Install latest/desired Mac OS X – will be the source volume to be captured and deployed to future Mac devices.
- Build – Install latest Mac OS X – will be the volume where the capture process is executed from.
Boot on the Build Volume, Login with the admin user and create the Image folder on the Image partition.
In Safari enter the URL for downloading the PmmOsdImageBuilder.dmg file:
http://server.domain.com:8761/files/PmmOsdImageBuilder.dmg
Mount the .dmg file and run the following commands or copy the contents to a local folder and then run the following commands from there.
Open the Terminal application.
In the Terminal application navigate to the mounted folder.
Example: “cd /Volumes/Parallels OSD Image Builder 4.0.1.31/”
Run the following command:
sudo ./pmm_osd_image_builder netrestore -s [source-vol] –o [output_dir]
[source-vol] – Is the source volume point to create the image from.
Example: “/Volumes/OS”
[output-dir] – Is a target folder where the image file will be placed. Example Path: “/Volumes/Image/Capture/”
Finalized command:
sudo ./pmm_osd_image_builder netrestore -s /Volumes/OS -o /Volumes/Image/Capture/
Copy the contents of the Boot folder to the ConfigMgr Server.
All that is needed now is to import the boot image and the restore image into ConfigMgr.
With High Sierra I get the following.
ahs-llwillia-mac:Desktop ahscoadmin$ sudo ./pmm_osd_image_builder netboot -n /Users/ahscoadmin/Documents/Boot/ –ssh-authkeys /Users/ahscoadmin/Documents/SSHKeys
Parallels OSD Image Builder.app bundle: /Users/ahscoadmin/Desktop/Parallels OSD Image Builder.app
Parallels OSD Task Sequence Wizard.app bundle: /Users/ahscoadmin/Desktop/Parallels OSD Image Builder.app/Contents/Helpers/Parallels OSD Task Sequence Wizard.app
Mac OS X version: 10.13
diskutil mount readOnly -mountpoint “/tmp/pmmtmp.xg3Ii_” “/dev/disk0s3”
Volume Recovery HD on /dev/disk0s3 mounted
diskutil unmount “/dev/disk0s3”
Volume Recovery HD on disk0s3 unmounted
Recovery partition found: disk0s3
Recovery partition version: 10.13
diskutil mount readOnly -mountpoint “/tmp/pmmtmp.recovery.7pVosa” “/dev/disk0s3″
Volume Recovery HD on /dev/disk0s3 mounted
Device (disk0s3)
BusProtocol: ‘SATA’
Content: ‘Apple_Boot’
DeviceNode: ‘/dev/disk0s3’
FilesystemName: ‘HFS+’
FreeSpace: ‘74084352’
MediaName: ”
MountPoint: ‘/private/tmp/pmmtmp.recovery.7pVosa’
TotalSize: ‘650002432’
VolumeName: ‘Recovery HD’
VolumeUUID: ‘6D7C6E27-02A1-3C6F-8CF2-42AAC14D660D’
Writable: ‘False’
WritableMedia: ‘True’
WritableVolume: ‘False’
Traceback (most recent call last):
File “/Users/ahscoadmin/Desktop/Parallels OSD Image Builder.app/Contents/Resources/scripts/imgbuild/__main__.py”, line 35, in
sys.exit(tool.create())
File “/Users/ahscoadmin/Desktop/Parallels OSD Image Builder.app/Contents/Resources/scripts/imgbuild/netboot.py”, line 111, in create
rv, error = self.doCreate()
File “/Users/ahscoadmin/Desktop/Parallels OSD Image Builder.app/Contents/Resources/scripts/imgbuild/netboot.py”, line 166, in doCreate
osx = import_osx(“%s.%s” % (recVer.major, recVer.minor))
File “/Users/ahscoadmin/Desktop/Parallels OSD Image Builder.app/Contents/Resources/scripts/imgbuild/netboot.py”, line 33, in import_osx
osx = imp.load_source(‘osx’, modPath)
IOError: [Errno 2] No such file or directory
diskutil unmount “/dev/disk0s3”
Volume Recovery HD on disk0s3 unmounted
10-05 10:06:09.878 F /OSDImageBuild:1420:307/ Operation finished with 1 (Operation not permitted)
Wonderful information, I read it completely and i used this into my project, thanks for sharing with us.
thnaks