示例#1
0
        private async Task MakeBootable(IDevice device)
        {
            Log.Verbose("Making Windows installation bootable...");

            var windowsVolume = await device.GetWindowsVolume();

            var systemVolume = await device.GetSystemVolume();

            await bootCreator.MakeBootable(systemVolume, windowsVolume);
        }
        private async Task MakeBootable(WindowsVolumes volumes)
        {
            Log.Verbose("Making Windows installation bootable...");

            await bootCreator.MakeBootable(volumes.Boot, volumes.Windows);

            await volumes.Boot.Partition.SetGptType(PartitionType.Esp);

            var updatedBootVolume = await phone.GetBootVolume();

            if (updatedBootVolume != null)
            {
                Log.Verbose("We shouldn't be able to get a reference to the Boot volume.");
                Log.Verbose("Updated Boot Volume: {@Volume}", new { updatedBootVolume.Label, updatedBootVolume.Partition, });
                if (!Equals(updatedBootVolume.Partition.PartitionType, PartitionType.Esp))
                {
                    Log.Warning("The system partition should be {Esp}, but it's {ActualType}", PartitionType.Esp, updatedBootVolume.Partition.PartitionType);
                }
            }
        }
 public Task Execute(string systemRoot, string windowsRoot)
 {
     return(bootCreator.MakeBootable(systemRoot, windowsRoot));
 }
 protected override async Task ExecuteCore()
 {
     await bootCreator.MakeBootable(await deploymentContext.Device.GetSystemPartition(),
                                    await deploymentContext.Device.GetWindowsPartition());
 }