如何使用 PowerShell 创建 EFI 分区?

如何使用 PowerShell 创建 EFI 分区?

我想自动执行创建 EFI 分区的脚本。

目前,有一个步骤是手动的,需要启动 DISKPART 并执行以下命令:

create partition efi size=100 
format fs=fat32 quick label=SYSTEM 
assign letter=S

如何使用 PowerShell 获得相同的结果?我没有在 New-Partition cmdlet 中看到任何用于创建 EFI 分区的选项。

答案1

我怀疑这相当于电源外壳

New-Partition -DiskNumber 0 -Size 100MB -GptType "{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}" -DriveLetter "S"
Format-Volume -FileSystem FAT32 -NewFileSystemLabel "SYSTEM" -DriveLetter "S" -Force

适当修改以适合您的使用情况。

答案2

请注意,您需要先选择一个磁盘,然后才能创建分区。

阅读diskpart /?、使用:

Microsoft DiskPart syntax:
        diskpart [/s <script>] [/?]

        /s <script> - Use a DiskPart script.
        /?          - Show this help screen.

注意DiskPart 脚本是一个简单的纯文本文件,其中包含 diskpart 命令(每行一个命令),例如MyDiskpart.txt下面所列。

diskpart /s MyDiskpart.txt

回答:后一个命令您可以从提升的 powershell会话以及提升的 cmd会话(˙diskpart˙ 始终需要提升)运行。

附录

此外,还Diskpart接受来自管道('|')以及<重定向因此以下cmd命令是等效的:

diskpart /s MyDiskpart.txt
diskpart<MyDiskpart.txt
type MyDiskpart.txt|diskpart

后者使用以下命令进行测试diskpart 脚本

==> type MyDiskpart.txt
list disk
list volume
select disk 1
list partition

此外,你不需要创建diskpart 脚本文件;以下.bat脚本显示系统卷详细信息(选择体积 #动态):

@ECHO OFF
SETLOCAL EnableExtensions

:check_permissions
echo Administrative permissions required. Detecting permissions...
net session >nul 2>&1
if %errorLevel% == 0 (
    echo Success: Administrative permissions confirmed.
) else (
    echo Failure: Current permissions inadequate.
    goto :endlocal
)

:do_the_job
for /f "tokens=2" %%a in ('echo list volume ^| diskpart ^| findstr System') do (
    (
        echo select volume %%a
        echo detail volume
    ) | diskpart
)
echo DONE
:endlocal
pause

相关内容