Ajout d’une image de démarrage
Cet exemple s’appuie sur l’exemple gravure d’une image de disque en ajoutant du code pour inclure une image de démarrage dans la section de démarrage du disque. L’image de démarrage se connecte à l’objet de système de fichiers écrit sur le disque. Une fois attaché, le reste du processus de gravure est identique à la procédure de gravure de base. L’image de démarrage assure le démarrage du système à l’aide du lecteur de CD ou de DVD.
L’exemple hardcodes le chemin d’accès à l’image de démarrage. Veillez à modifier le chemin d’accès avec d’autres valeurs codées en dur, le cas échéant.
' This script burns a boot image and data files to disc in a
' single session using files from a single directory tree.
'Copyright (C) Microsoft Corp. 2006
Option Explicit
' *** CD/DVD disc file system types
Const FsiFileSystemISO9660 = 1
Const FsiFileSystemJoliet = 2
Const FsiFileSystemUDF = 4
WScript.Quit(Main)
Function Main
Dim index ' Index to recording drive.
Dim recorder ' Recorder object
Dim path ' Directory of files to burn
Dim stream ' Data stream for burning device
Dim bootFile ' Path and filename of boot image
index = 1 ' Second drive on the system
path = "g:\BurnDir"
bootFile = "g:\BootImg\etfsboot.com"
' Create a DiscMaster2 object to connect to CD/DVD drives.
Dim g_DiscMaster
Set g_DiscMaster = WScript.CreateObject("IMAPI2.MsftDiscMaster2")
' Create a DiscRecorder object for the specified burning device.
Dim uniqueId
set recorder = WScript.CreateObject("IMAPI2.MsftDiscRecorder2")
uniqueId = g_DiscMaster.Item(index)
recorder.InitializeDiscRecorder( uniqueId )
' -------- Adding Boot Image Code -----
Dim bootOptions
WScript.Echo "Creating BootOptions"
SET bootOptions = WScript.CreateObject("IMAPI2FS.BootOptions")
bootOptions.Manufacturer = "Microsoft"
bootOptions.PlatformId = 0 ' x86 processor
bootOptions.Emulation = 0 ' EmulationType.EmulationNone
' Need a stream for the boot image file
Const adFileTypeBinary = 1
DIM bootStream
Set bootStream = CreateObject("ADODB.Stream")
WScript.Echo "Creating IStream for file " + bootFile
bootStream.Open
bootStream.Type = adFileTypeBinary
bootStream.LoadFromFile bootFile
bootOptions.AssignBootImage(bootStream)
' Create disc file system image (ISO9660 in this example)
Dim FSI
SET FSI = WScript.CreateObject("IMAPI2FS.MsftFileSystemImage")
FSI.ChooseImageDefaults(Recorder)
' Add the boot directory and its contents to the file system
FSI.BootImageOptions = bootOptions
' Add the content directory and files to the file system
FSI.root.AddTree path, FALSE
Dim result
Set result = FSI.CreateResultImage()
stream = result.ImageStream
' Create and write stream to disc using the specified recorder.
Dim dataWriter
Set dataWriter = CreateObject("IMAPI2.MsftDiscFormat2Data")
dataWriter.recorder = Recorder
dataWriter.ClientName = "IMAPIv2 TEST"
dataWriter.write(stream)
WScript.Echo "----- Finished writing content -----"
Main = 0
End Function