2021年12月29日 星期三

如何使用 Dism 安裝 Windows11

如何在外接硬碟 安裝 Windows11

tags: 部落格文章

Dism是微軟封裝Windows的程式,可以把它想像成 RAR 的意思。壓縮完畢後會變成一個 .wim 檔案,這個檔案解壓出來就是C曹剛重灌好的樣子了

所謂的安裝系統只不過是 解壓縮+建立開機引導 而已
這同時也意味著轉移系統只需要你將C曹所有檔案 Ctrl+C 複製到另一個硬碟,然後重建引導即可開機

安裝完畢開機之後系統會自動變成Windows to go狀態,大致上的區別就是有些設定值被限制了,比如說預設值是不能休眠的。


從下面開始所有指令的安裝的磁碟曹是F曹,如果你要安裝的曹位不是F,建議在磁碟管理員把他指定成F,這樣才不用修改指令。


前置任務

在開始前請先確定硬碟已經轉換成GPT格式
可以使用下面命令查詢分區格式

# F自行置換成你要安裝磁碟機代號
Get-Partition -DriveLetter "F" | Get-Disk


看到上圖表示是正確的,可以進行下一步了。

如果顯示是MBR格式,那可打開磁碟管理員,刪除所有分區之後點擊轉換。


(圖片沒有刪除且已經是GPT格式,所以才是灰色的的轉換成MBR字樣)




wim檔案的位置

wim檔案又可以稱做是系統的映象檔,這個檔案在微軟載下ISO內,點擊ISO檔案兩下掛載,然後你可以在 source 裡面發現 install.wim 檔案。

ISO檔案可以從這個網址下載:https://www.microsoft.com/zh-tw/software-download/windows11


查看映像檔資訊

一份映像檔裡面有別於剛剛說的rar壓縮包,wim檔案是可以同時包含多個版本的,解壓縮的時候要選擇版本解壓。這個步驟就跟通常安裝Windows時要讓我們選擇專業版還是家用版一樣意思。

查看的指令是(需要管理員權限)

Dism /Get-ImageInfo /ImageFile:"E:\sources\install.wim"


這邊我要安裝的是專業版,那就記下對應的編號 index:3


解壓縮

接下來把它解壓縮到目標槽位,也就是你要安裝的硬碟上

# 映像檔位置 : E:\sources\install.wim
# 安裝的版本 : 3 (Windows 11 專業版)
# 解壓縮位置 : F:\
Dism /apply-image /imagefile:E:\sources\install.wim /index:3 /applydir:F:\

等待跑完即可




建立開機引導

開機引導需要獨立的一個EFI分區,一般Windows會自動將它分配在開頭的位置。但實際上EFI的分區順序是沒有規定的,這邊為了方便操作直接從F曹切出300M來用

(指令很長連點三下可全選)

$Dri=(Get-Partition -DriveLetter "F");$Dri|Resize-Partition -Size:($Dri.size-300MB);((($Dri|New-Partition -Size:300MB -GptType:"{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}")|Format-Volume)|Get-Partition)|Set-Partition -NewDriveLetter:"X"

接著寫入開機引導

bcdboot F:\windows /f UEFI /s X:\ /l zh-tw

到這邊就完成了,重啟之後UEFI選則該硬碟啟動,即可開機




掛載與卸載EFI磁碟代號

磁碟管理是沒辦法直接掛載EFI分區的,如果需要修復EFI掛載的方法如下

# 新增F曹的EFI分區磁碟代號為X
((Get-Partition -DiskNumber:(Get-Partition -DriveLetter "F").DiskNumber)|?{$_.GptType -eq "{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}"})[0]|Set-Partition -NewDriveLetter:"X"

# 移除磁碟代號X
$Letter="X";(Get-Partition -DriveLetter:$Letter)|Remove-PartitionAccessPath -AccessPath:("$Letter"+":")

參考資料

Dism 修復 Windows 系統

修復 Windows 系統

系統損壞原因很多,這邊用的指令是簡單修復Windows的檔案,有時候系統BUG這個修復是有用的。

執行的方法按下 Win+X 然後在按 A 就可以打開終端機了,在終端機裡面輸入底下指令。

# 檢查有無出錯
Dism /Online /Cleanup-Image /ScanHealth
Dism /Online /Cleanup-Image /CheckHealth

# 修復
DISM /Online /Cleanup-image /RestoreHealth
sfc /SCANNOW

2021年12月18日 星期六

PowerShell 關閉 IPv6 連線

PowerShell 關閉 IPv6 連線

tags: 部落格文章

主要是遇到了一點問題,不得不關閉IPv6的連線,才只好這麼做的。留個紀錄之後要爬文比較好找。

關閉 Ipv6

利用的指令是

Get-NetAdapterBinding -Com:ms_tcpip6

這個可以查出全部的 IPv6 連線的裝置名稱,再利用裝置名稱把連線關掉

$Name = '區域連線'
Enable-NetAdapterBinding -Name:$Name -ComponentID:ms_tcpip6

遇到的問題

遇到這個問題是因為不知道為什麼自己建立的 OpenVPN 伺服器雖然連上了,但是IPv6是沒有啟用的,造成的問題就是IPv6依然是本地IP只有換IPv4而已。

然後預設的連線行為是 IPv6 優先於 IPv4 的,所以如果網站支援 IPv6 的話我連上的VPN就等同於虛設了,還是一樣本地的IP

解決辦法就是乾脆關掉 IPv6 就好了,不過為什麼會造成這個原因我猜有可能是因為我用 TAP 模式的關係吧,伺服器是用ASUS的路由器建的(也有可能只是ASUS的BUG)。

差多三年前剛架設的時候 TUN 模式因為沒辦法把流量都導到AP上 (已經打勾導流了),最後用 TAP 才解決的就一直這樣用了,現在還是同一個型號測試 TUN 已經可以正常導流了。TAP模式缺陷很不方便,第二台客戶端AP、安卓手機不能用,沒特別需求建議還是用TUN比較好。

解決方案完整代碼在這裡。
https://github.com/hunandy14/OpenVPN_Switch/blob/master/OVPN_chg190118_v6.ps1

2021年12月8日 星期三

移除 華碩 ASUS ArmouryCrate 桌面右鍵選單 GameLibray

移除 華碩 ASUS ArmouryCrate 桌面右鍵選單 GameLibray

這選單是真礙眼,沒有習慣從桌面的右鍵選單裡面開遊戲,偏偏軟體裡面又不給設定移除。姑且自己去挖登錄檔位置出來有成功刪除了。



停用的方法

先按下 Win+X 然後再按下 A ➔ 打開終端機,然後輸入底下的代碼按下Enter

reg add "HKEY_CLASSES_ROOT\Directory\Background\shell\GameLibrary" /v "LegacyDisable" /t REG_SZ /f

執行完畢就會消失了。


復原

由於沒有直接刪除原本的值,要復原的話刪除 LegacyDisable 這個項目即可

reg delete "HKEY_CLASSES_ROOT\Directory\Background\shell\GameLibrary" /v "LegacyDisable" /f

就此就能輕易復原了





登錄檔值

對應的位置在這裡,要強制刪除可以執行這行
Remove-Item -LiteralPath 'Registry::HKEY_CLASSES_ROOT\Directory\Background\shell\GameLibrary'

登錄檔機碼備份,把她存成 GameLibrary.reg 之後執行即可復原
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\GameLibrary]
"MUIVerb"="ArmouryCrate"
"SubCommands"="g0;|;g1;"

"Icon"="C:\\Users\\這裡換成自己的使用者路徑\\AppData\\Local\\Packages\\B9ECED6F.ArmouryCrate_qmba6cd70vzyy\\LocalState\\GameLibrary\\ArmouryCrate.ico"