반응형

Diskpart 파티션 스크립트 v4.0에서 프리셋을 설정하고, 이를 ISO 파일이나 USB 드라이브에 저장하여 활용하는 방법을 정리해 보았습니다.

 

1. Diskpart 파티션 스크립트 v4.0을 실행하여 프리셋과 옵션을 선택한 후, 프리셋 번호를 지정하고 저장합니다.

 

2. 실행 파일과 설정 파일을 ISO 파일 또는 USB 드라이브에 복사하여 저장합니다.

 

3. Shift + F10을 눌러 커맨드 창을 실행합니다.

 

4. diskpart 실행 후 list volume 명령어를 입력하여 USB 또는 광학 드라이브의 문자를 확인합니다.

 

5. 확인한 D: 드라이브로 이동한 후, dir 명령어를 입력하여 파일 목록을 확인합니다.

6. 확인한 파티션 프로그램의 이름을 입력하여 실행합니다.

 

7. 프리셋 선택

 

8. 디스크 선택 > 옵션 확인 > 작업 시작

 

9. 파티션 작업이 완료되면 파티션 목록 결과를 확인 하세요.

 

10. 윈도우 설치 디스크 목록 > 새로 고침

11. 윈도우 파티션 레이블을 선택하고, 선택한 파티션에 윈도우 설치를 진행합니다.

 

DiskpartGUI 4.0 활용 방법 - 움짤 GIF

 

Diskpart 명령어(약어) 샘플 - 움짤GIF

 

■ 동영상 제목 클릭 후 전체화면(1080P)시청 가능합니다.

 

 

정보가 도움이 되었다면 아래 링크로 커피를 후원 해주세요. ^^

donaricano-btn

반응형
반응형

1. 디스크 번호 상태 출력 재배치
 - 선택된 디스크 번호 상태를 화면 상단으로 이동하여 가시성을 향상시킵니다. 
 - 사용자가 현재 선택한 디스크를 빠르게 확인할 수 있습니다.

2. 파티션 라벨 및 할당 문자 변경 기능 추가
 - 사용자가 각 파티션의 라벨과 드라이브 할당 문자를 쉽게 변경할 수 있도록 기능을 개선합니다.
 - 변경된 라벨 및 할당 문자는 프리셋에 저장하여, 다음 사용 시에도 동일한 설정을 적용할 수 있습니다.
 - 특히, Data 파티션에 대해서는 드라이브 문자 D를 우선 할당하며, 만약 D가 이미 사용 중인 경우, 시스템은 자동으로 순차적으로 다른 문자를 할당합니다.

 

3. WMI(winmgmts)를 이용하여 디스크 파티션의 세부 정보를 출력하는 기능이 추가되었습니다.
 - 기본 파티션 정보(diskpart - list partition)가 먼저 출력되며, N 버튼을 클릭하면 세부 정보를 확인할 수 있습니다.
 - 단, WMI 서비스가 누락된 환경에서는 N버튼의 세부 정보가 출력되지 않습니다.

 

WMI(winmgmts)를 이용하여 디스크 파티션의 세부 정보를 출력하는 기능이 추가되었습니다.
 - 기본 파티션 정보(diskpart - list partition)가 먼저 출력되며, N 버튼을 클릭하면 세부 정보를 확인할 수 있습니다.
 - 단, WMI 서비스가 누락된 환경에서는 N버튼의 세부 정보가 출력되지 않습니다.

 

 

 

Diskpart 파티션 스크립트 v4.5 레이블 및 문자 할당  적용 - 움짤 GIF

반응형
반응형

Diskpart_partition_script_v4.0.zip
11.63MB

 

1. Diskpart 파티션 스크립트 v4.0

 - v3.5 기능 포함 및 성능 개선
 - 디스크 및 파티션의 정보가 각 리스트뷰에 출력되도록 수정
 - 상태 값 프리셋 저장 및 초기화 기능 개선

2. 기본값, 프리셋1, 프리셋2, 프리셋3을 선택 후 개별적으로 저장 가능
 - 프리셋 저장은 UEFI/GPT 구성만 지원 합니다.

 - BIOS/MBR 구성은 라디오 버튼을 통해 기본값으로 제한(윈도우 All or Data 파티션 분할 2가지 옵션만 사용 가능)

 - setting.ini 파일은 저장 기능을 사용하거나 메모장으로 열어 수동으로 수정하셔도 됩니다.

3. 디스크 번호 선택 시 자동 정보 출력
 - 디스크 번호를 선택하면 해당 파티션 정보가 자동으로 출력되도록 개선

4. 인터페이스 공간 효율화
 - 하단 프로그레스바를 제거하고 팝업 창으로 진행 상황을 출력
 - 작업 단계별 진행 상황 표시

 - 디스크 모델명 길이 확장 및 가운데 정렬 통일

5. 작업 시작 시 각 단계별 진행 상황을 팝업 프로그레스바에 표시

 

https://noways.tistory.com/2068

 

Diskpart 파티션 스크립트 v3.5 - 기능 개선 및 버그 수정

프리셋  기본값, 1,  2, 3 저장 샘플Diskpart 파티션 스크립트 v3.5 프리셋 샘플 - 움짤 GIF└▶ 상태 값 프리셋으로 저장 및 초기화└▶ 확정된 것은 아니며, 일단 기본적인 기능만 구현   영문 

noways.tistory.com

 

 

파티션 정보 출력 리스트뷰 추가

 - 디스크, 파티션 개별 리스트뷰에 정보 출력

 

 

디스크 번호 선택시 파티션 정보가 자동으로 출력 되도록 개선

 - 기본값 포함 프리셋1, 2, 3 활용 개선

 

 

 

 

 

작업 시작 진행 상황이 단계별로 팝업 프로그레스 창에 표시됩니다.

 - 디스크 초기화 중 . . .

 

 

 

작업 시작 진행 상황이 단계별로 팝업 프로그레스 창에 표시됩니다.

 - 시스템(EFI) 파티션 생성 중 . . .

 

 

 

작업 시작 진행 상황이 단계별로 팝업 프로그레스 창에 표시됩니다.

 - MSR 파티션 생성 중 . . .

 

 

 

작업 시작 진행 상황이 단계별로 팝업 프로그레스 창에 표시됩니다.

 -  윈도우 파티션 생성 중 . . .

 

 

 

작업 시작 진행 상황이 단계별로 팝업 프로그레스 창에 표시됩니다.

 - Data 파티션 생성 중 . . .

 

 

 

작업 시작 진행 상황이 단계별로 팝업 프로그레스 창에 표시됩니다.

 - 복원 파티션 생성 중 . . .

 

 

 

작업 시작 진행 상황이 단계별로 팝업 프로그레스 창에 표시됩니다.

 - 마무리 중 . . .

 

 

Diskpart 파티션 스크립트 v4.0 샘플 - 움짤 GIF

 

■ 동영상 제목 클릭 후 전체화면(1080P)시청 가능합니다.

 

정보가 도움이 되었다면 아래 링크로 커피를 후원 해주세요. ^^

donaricano-btn

반응형
반응형

프리셋  기본값, 1,  2, 3 저장 샘플

Diskpart 파티션 스크립트 v3.5 프리셋 샘플 - 움짤 GIF

└▶ 상태 값 프리셋으로 저장 및 초기화

└▶ 확정된 것은 아니며, 일단 기본적인 기능만 구현

 

 

 

영문 Windows 및 PE 환경에서 디스크 및 파티션 정보 출력 오류 수정 
 └▶ 한국어와 영문 환경 모두에서 시스템 언어를 우선으로 하여 출력되도록 개선

 

; Windows API를 사용하여 시스템 언어 확인
Func GetSystemDefaultUILanguage()
    Local $hKernel32 = DllOpen("kernel32.dll")
    If $hKernel32 = -1 Then
        ;MsgBox(16, "Error", "Unable to open kernel32.dll.")
        Exit
    EndIf

    Local $aResult = DllCall($hKernel32, "ushort", "GetSystemDefaultUILanguage")
    DllClose($hKernel32)

    If @error Or Not IsArray($aResult) Then
        ;MsgBox(16, "Error", "Failed to call GetSystemDefaultUILanguage.")
        Exit
    EndIf

    Return $aResult[0]
EndFunc

 

    ; 중복 방지 배열 선언
    Local $aUsedDisks = []

    ; 디스크 정보 추출
    Local $aLines = StringSplit($diskContent, @CRLF, 1)
    For $i = 0 To UBound($aLines) - 1
        Local $sLine = StringStripWS($aLines[$i], 3)

        ; 언어에 맞는 정규식 선택
        Local $aData
        If $bIsKorean Then
            ; 한국어 정규식
            If StringRegExp($sLine, "^디스크\s+(\d+)\s+(\S+)") Then
                $aData = StringRegExp($sLine, "^디스크\s+(\d+)\s+(\S+)\s+([\d,]+\s+[A-Za-z가-힣]+)\s+([\d,]+\s+[A-Za-z가-힣]+)\s*(\S*)\s*(\S*)$", 3)
            EndIf
        Else
            ; 영어 정규식
            If StringRegExp($sLine, "^Disk\s+(\d+)\s+(\S+)\s+([\d,]+\s+[A-Za-z]+)\s+([\d,]+\s+[A-Za-z]+)\s*(\S*)\s*(\S*)$") Then
                $aData = StringRegExp($sLine, "^Disk\s+(\d+)\s+(\S+)\s+([\d,]+\s+[A-Za-z]+)\s+([\d,]+\s+[A-Za-z]+)\s*(\S*)\s*(\S*)$", 3)
            EndIf
        EndIf

        If IsArray($aData) Then
            Local $diskNumber = $aData[0]
            
            ; 이미 출력된 디스크 번호인지 확인
            If Not IsInArray($diskNumber, $aUsedDisks) Then
                Local $size = $aData[2]
                Local $dyn = $aData[4] == "*" ? "GPT" : "MBR"

                ; detail disk 명령어 실행 및 결과 읽기
                FileDelete($sDiskInfoFile) ; 이전 명령 초기화
                FileWrite($sDiskInfoFile, "select disk " & $diskNumber & @CRLF & "detail disk" & @CRLF)
                RunWait(@ComSpec & " /c diskpart /s " & $sDiskInfoFile & " > " & $sResultFile, "", @SW_HIDE)
                Local $detailContent = FileRead($sResultFile)

                ; 디스크 모델 추출
                Local $model = "-"
                ; 디스크 모델 추출 정규식 수정
                If $bIsKorean Then
                    Local $aModelMatch = StringRegExp($detailContent, "(?m)^([^\r\n]+)\r\n디스크 ID:", 1)
                Else
                    Local $aModelMatch = StringRegExp($detailContent, "(?m)^([^\r\n]+)\r\nDisk ID:", 1)
                EndIf
                
                If IsArray($aModelMatch) Then
                    $model = StringStripWS($aModelMatch[0], 3)
                EndIf

                ; 디스크 정보를 ListView에 추가
                GUICtrlCreateListViewItem($diskNumber & "|" & $dyn & "|" & $size & "|" & $model, $hListView)

                ; 사용된 디스크 번호 배열에 추가
                _ArrayAdd($aUsedDisks, $diskNumber)
            EndIf
        EndIf
    Next

 

 

    ; 중복 방지 배열 선언
    Local $aUsedPartitionNumbers = []

    ; 파티션 정보 추출
    Local $aLines = StringSplit($partitionContent, @CRLF, 1)
    For $i = 0 To UBound($aLines) - 1
        Local $sLine = StringStripWS($aLines[$i], 3)

        ; 언어에 맞는 정규식 선택
        Local $aData
        If $bIsKorean Then
            ; 한국어 파티션 정보 정규식
            If StringRegExp($sLine, "파티션\s+(\d+)\s+(\S+)\s+([\d,]+\s+[A-Za-z]+)\s+([\d,]+\s+[A-Za-z]+)") Then
                $aData = StringRegExp($sLine, "파티션\s+(\d+)\s+(\S+)\s+([\d,]+\s+[A-Za-z]+)\s+([\d,]+\s+[A-Za-z]+)", 3)
            EndIf
        Else
            ; 영어 파티션 정보 정규식
            If StringRegExp($sLine, "Partition\s+(\d+)\s+(\S+)\s+([\d,]+\s+[A-Za-z]+)\s+([\d,]+\s+[A-Za-z]+)") Then
                $aData = StringRegExp($sLine, "Partition\s+(\d+)\s+(\S+)\s+([\d,]+\s+[A-Za-z]+)\s+([\d,]+\s+[A-Za-z]+)", 3)
            EndIf
        EndIf

        If IsArray($aData) Then
            Local $partitionNumber = $aData[0]
            
            ; 중복 파티션 번호 체크
            If Not IsInArray($partitionNumber, $aUsedPartitionNumbers) Then
                ; 파티션 정보를 ListView에 추가
                GUICtrlCreateListViewItem($aData[0] & "|" & $aData[1] & "|" & $aData[2] & "|" & $aData[3], $hListView)

                ; 사용된 파티션 번호 배열에 추가
                _ArrayAdd($aUsedPartitionNumbers, $partitionNumber)
            EndIf
        EndIf
    Next

 

 

 

■ 동영상 제목 클릭 후 전체화면(1080P)시청 가능합니다.

 

정보가 도움이 되었다면 아래 링크로 커피를 후원 해주세요. ^^

donaricano-btn

반응형

+ Recent posts