徵兆
升級至或更新 Windows 10 時,您可能會遇到「我們無法更新系統保留磁碟分區」、錯誤碼0xc1900104或錯誤碼0x800f0922的錯誤。
原因
系統保留磁碟分區 (SRP) 可能已滿。 系統保留磁碟分區 (SRP) 是硬碟上儲存 Windows 開機資訊的小型磁碟分區區。 某些第三方防病毒和安全性應用程式會寫入 SRP,並可以填滿。
解決方案
注意:這些步驟很複雜,並承擔一些風險。 這是使用命令行的進階使用者的最佳作法。 如果您輸入這些命令時發生錯誤,可能會讓裝置處於未開機狀態,而且可能遺失儲存在裝置上的數據。
若要升級您的裝置,您需要使用下列適當方法釋放 SRP 上的 15 MB 空間,然後再次嘗試升級。 如果您要更新 Windows 10,則必須釋放 13 MB。 首先,判斷 SRP 是 GPT 還是 MBR 磁碟分區樣式:-
按 Windows 鍵 + R。在出現的 [執行] 視窗中,輸入 diskmgmt.msc,然後按 Enter。
-
按住或以滑鼠右鍵按兩下 [磁碟] (,例如包含 SRP 的 [磁碟 0) ],然後選取 [內容]。
-
選擇 [卷標] 索引標籤。
-
磁碟分區樣式:線條會顯示 GUID 磁碟分區表 (GPT) 或主開機記錄 (MBR) 。
第二,選擇您需要的方法:
-
搜尋 cmd。 按住或以滑鼠右鍵按兩下結果中的 [命令提示字元],然後選取 [ 以系統管理員身分執行]。
-
在命令提示字元中,輸入 mountvol y: /s ,然後按 Enter。 這會新增 Y: 驅動器號以存取系統磁碟分區。
-
輸入 Y: 以切換到 Y 磁碟驅動器,然後按 Enter。 然後,輸入 cd EFI\Microsoft\Boot\Fonts,流覽至 [字型] 資料夾。 一旦移至該處,請輸入 del *.* 以刪除字型檔案。 系統可能會詢問您是否確定要繼續,請按 Y ,然後按 Enter 繼續。
-
按 Windows 鍵 + R。在出現的 [ 執行] 視窗中,輸入 diskmgmt.msc ,然後按 Enter。
-
選取標示為 [系統保留] 的磁碟分區。 按住或以滑鼠右鍵按下該按鈕。
-
選 取 [變更驅動器號和路徑]。
-
選擇 [新增]。
-
輸入 Y 做為驅動器號。
-
點選或按兩下 [ 確定]。
-
從 [開始] 功能表搜尋 Cmd。 以滑鼠右鍵按下搜尋結果中的 [命令提示字元],然後選 取 [以系統管理員身分執行]。
-
在命令提示字元中,輸入 Y: ,然後按 Enter 切換到該磁碟驅動器。 然後,輸入 cd Boot\Fonts,流覽至 [字型] 資料夾。
-
輸入下列內容,然後按 Enter:
takeown /d y /r /f 。注意:您必須包含空格和 「f」 之後的句號,否則命令將無法正常運作。
-
輸入下列內容以備份磁碟驅動器的許可權,然後按 Enter:
icacls Y:\* /save %systemdrive%\NTFSp.txt /c /t
注意:請確定所有檔案都顯示為成功,無顯示為失敗。
-
輸入 whoami 並按 Enter,然後錄製用戶名稱。 輸入下列命令,然後按 Enter:
icacls 。 /grant <您從 whoami>取得的使用者名稱 :F /t注意:請勿在用戶名稱和 “:F” 之間放置空格,否則命令無法運作。
-
請確定您仍位於 [字型] 位置, (步驟 Y:\Boot\Fonts) 。 接著,輸入 del *.* 以刪除字型檔案。 系統可能會詢問您是否確定要繼續,請按 Y ,然後輸入以繼續。
還原許可權
-
輸入下列命令,然後按下 Enter:
icacls Y:\ /restore %systemdrive%\NTFSp.txt /c /t
-
可能會顯示一則訊息,指出某些檔案在處理時失敗–這是正常現象,因為這些檔案在後續為了備份而遭刪除。
-
如果成功檔案的數量無誤,則命令執行錯誤;您必須先成功處理某些檔案,才能繼續。
-
輸入下列內容並按 Enter,即可將 ACL 調整回 [系統]:
-
icacls . /grant system:f /t
-
輸入下列命令並按 Enter 鍵,將磁碟驅動器的擁有者設回 [系統]:
icacls Y: /setowner “SYSTEM” /t /c
-
返回 到 [磁碟管理] 並重新整理數據,確認 SRP 現在是否有更大的可用空間百分比。 如果是,此時可以移除驅動器號。
-
以滑鼠右鍵按兩下 [系統保留磁碟分區]。
-
選 取 [變更驅動器號和路徑]。
-
選擇 [Y: 磁碟驅動器]。
-
選 取 [移除]。
-
按一下 [確定]。
-
搜尋 cmd。 按住或以滑鼠右鍵按兩下結果中的 [命令提示 字元],然後選 取 [以 administrator 執行]。
-
在命令提示字元中,輸入 mountvol y: /s ,然後按 Enter。 這會新增 Y: 驅動器 號以存取系統磁碟分區。
-
輸入 task 要點 /im explorer.exe /f ,然後按 Enter。 接著輸入 explorer.exe,然後按 Enter 以 管理員 模式重新啟動檔案總管。
注意: 在此模式中,某些應用程式 (,例如 OneNote) 無法執行。 -
開啟 檔案總管,並將 Y:\EFI\Microsoft\Boot\ 放在網址列中,然後按 Enter。
-
選取您要移除並永久刪除的語言資料夾。 它們會以一組四個字母表示,並以連字元分割。 例如,en-US 表示美式英文;de-DE 表示德文。
-
選用:在 Y:\EFI\Microsoft\Boot\Fonts 移除未使用的字型檔案。
-
拿掉檔案之後,將裝置重新啟動。 這會移除驅動器號,並將 explorer.exe 傳回一般模式。
這會增加 SRP 可用空間的永久但小量。
-
拿掉語言資料夾
-
按 Windows 鍵 + R。 在出現的 [ 執行] 視窗中,輸入 diskmgmt.msc ,然後按 Enter。
-
選取標示為 [系統保留] 的磁碟分區。 按住或以滑鼠右鍵按下該按鈕。
-
選 取 [變更驅動器號和路徑]。
-
選擇 [新增]。
-
輸入 Y 做為驅動器號。
-
點選或按兩下 [ 確定]。
-
從 [ 開始] 功能表搜尋 Cmd。 以滑鼠右鍵按下搜尋結果中的 [命令提示 字元],然後選 取 [以系統管理員身分執行]。
-
在命令提示字元中,輸入 Y: ,然後按 Enter 切換到該磁碟驅動器。
-
輸入下列內容,然後按 Enter:
takeown /d y /r /f .
-
輸入下列內容以備份磁碟驅動器的許可權,然後按 Enter:
icacls Y:\* /save %systemdrive%\NTFSp.txt /c /t
-
輸入 whoami 並按 Enter,然後錄製用戶名稱。 輸入下列命令,然後按 Enter:
icacls 。 /grant <您從 whoami>取得的使用者名稱 :F /t 注意: 請勿在用戶名稱和 “:F” 之間放置空格,否則命令無法運作。 -
在 檔案總管 中開啟 SRP 磁碟驅動器並存取 [開機] 資料夾,選取您要移除的語言資料夾並永久刪除它們。 它們會以一組四個字母表示,並以連字元分割。 例如,en-US 表示美式英文;de-DE 表示德文。
-
-
截斷NTFS記錄
-
請先檢查NTFS記錄檔的大小。 從命令提示字元輸入下列內容,然後按 Enter:
chkdsk /L Y:-
如果大小小於 5000KB,則不需要截斷檔案。
-
-
若要截斷檔案,請輸入下列內容,然後按 Enter:
chkdsk /L:5000 /X /F -
返回 至 [磁碟管理] 視窗。 點選或單擊 [動作] 功能表,然後選取 [ 重新整理]。 確認 SRP 現在有更大的可用空間百分比。 若是如此,請長按或以滑鼠右鍵按兩下 [系統保留磁碟分區], 然後選取 [ 變更驅動器號和路徑]。 選取 [Y: ],然後選擇 [ 移除]。
-
-
如果截斷NTFS記錄檔不會增加SRP中的可用空間,請調整USN日誌大小。
-
從命令提示字元輸入下列內容,然後按 Enter:
fsutil usn queryjournal Y:-
這會以十六進位值顯示大小。 將值轉換成十進位並除以1048576,結果會是 MB。 (若要將十六進位轉換成十進位:在 Windows 中開啟小算盤,選取 [檢視] 功能表,然後選擇 [程序設計師]。 選取 [十六進位],輸入十六進位值,然後選取 [12 月)
-
如果日誌是 30MB 或更多,請繼續截斷。
-
-
輸入下列命令並按 Enter:
fsutil usn deletejournal /D /N Y 以刪除日誌: -
使用新的記錄檔大小值重新建立日誌:
fsutil usn createjournal m=1500 a=1 Y:
-
-
還原許可權
-
輸入下列命令,然後按下 Enter:
icacls Y:\ /restore %systemdrive%\NTFSp.txt /c /t
-
可能會顯示一則訊息,指出某些檔案在處理時失敗–這是正常現象,因為這些檔案在後續為了備份而遭刪除。
-
如果成功檔案的數量無誤,則命令執行錯誤;您必須先成功處理某些檔案,才能繼續。
-
-
輸入下列內容並按 Enter,即可將 ACL 調整回 [系統]:
icacls . /grant system:f /t
-
輸入下列命令並按 Enter 鍵,將磁碟驅動器的擁有者設回 [系統]:
icacls Y: /setowner “SYSTEM” /t /c
-
返回 磁碟管理並重新整理數據,以確認 SRP 現在是否有較大的可用空間百分比。 如果是,此時可以移除驅動器號。
-
以滑鼠右鍵按兩下 [系統保留磁碟分區]。
-
選 取 [變更驅動器號和路徑]。
-
選擇 [Y: 磁 碟驅動器]。
-
選 取 [移除]。
-
按一下 [確定]。
-
這會在 SRP 的可用空間中建立較大但暫時性的增加。
-
請確定您的外接式磁碟驅動器已格式化為NTFS,至少有250 MB可用空間。
-
按 Windows 鍵 + R。在出現的 [執行] 視窗中,輸入 diskmgmt.msc,然後按 Enter。
-
選取 [修復磁碟分區]。 按住或以滑鼠右鍵按下該按鈕。
-
選取 [變更驅動器號和路徑]。
-
選擇 [新增]。
-
輸入 Y 做為驅動器號。
-
點選或按兩下 [確定]。
-
從 [開始] 畫面向右撥動,然後選取 [搜尋] 常用鍵,或直接開始輸入以搜尋 Cmd。 從搜尋結果中按住或以滑鼠右鍵按下 [命令提示字元],然後選取 [以系統管理員身分執行]。
-
在命令提示字元中,輸入 Y:,然後按 Enter 切換到該磁碟驅動器。
-
輸入下列內容,然後按 Enter:
takeown /d y /r /f . 注意 您必須包含空格和 「f」 之後的句號,否則命令將無法正常運作。 -
輸入 whoami 並按 Enter,然後錄製用戶名稱。 輸入下列命令,然後按 Enter:
icacls . /grant <username from whoami>:F /t 注意:請勿在用戶名稱和 “:F” 之間放置空格,否則命令無法運作。 -
當該命令完成時,輸入或貼上下列專案,然後按 Enter:
attrib -s -r -h Y:\Recovery\WindowsRE\winre.wim
-
開啟 檔案總管,並記下您使用 (之外部磁碟驅動器的驅動器號,在其餘指示中,我們會使用 F: - 無論您在何處看到 F:在這些步驟中,這真的代表外部磁碟驅動器) 的驅動器號。
-
在命令提示字元中,輸入下列內容,然後按 Enter:
mkdir F:\Recovery\WindowsRE
-
接下來,輸入下列內容,然後按 Enter:
xcopy Y:\Recovery\WindowsRE\winre.wim F:\Recovery\WindowsRE\winre.wim /h
-
輸入下列命令,然後按 Enter 鍵來對應新路徑:
C:\Windows\System32\Reagentc /SetREImage /Path F:\Recovery\WindowsRE /Target C:\Windows
-
確認複製成功后,請輸入下列內容,然後按 Enter:
del Y:\Recovery\WindowsRE\winre.wim /F
-
返回 至 [磁碟管理] 視窗。 點選或單擊 [動作] 功能表,然後選取 [重新整理]。 確認 SRP 現在有更大的可用空間百分比。 若是如此,請繼續升級。
-
升級完成後,將 wim 檔案移回修復磁碟分區,然後重新對應位置:
-
從命令提示字元輸入下列內容,然後按 Enter:
xcopy F:\Recovery\WindowsRE\winre.wim Y:\Recovery\WindowsRE\winre.wim /h
-
重新對應至原始路徑。 輸入下列內容,然後按 Enter:
C:\Windows\System32\Reagentc /SetREImage /Path Y:\Recovery\WindowsRE /Target C:\Windows
-
-
返回 至 [磁碟管理] 視窗。 長按或以滑鼠右鍵按擊修復磁碟分區,然後選取 [變更驅動器號和路徑]。 選取 [Y:],然後選擇 [移除]。