文章目錄

要升級 Minecraft 伺服器或修改設定前,我們會想先留一份世界,出事時才能回到原本的狀態。最簡單的備份方式不用打任何指令,只要關閉伺服器,再用檔案總管複製世界資料夾。還原時把這份備份放回去,世界就會回到備份時的狀態。
本文的測試環境是 Windows 11、Java 25,以及原版與 Paper 的 26.3,文中的做法在兩種伺服器都相同。如果還沒有伺服器,可以先架設 Java 原版伺服器。
世界資料夾的位置
伺服器的世界在伺服器資料夾裡的 world,名稱由 server.properties 的 level-name 決定。單人遊戲的存檔則在 %APPDATA%\.minecraft\saves 底下,每個世界一個資料夾,內部的結構和伺服器相同。
Minecraft 26.1 改變了世界資料夾的結構,舊教學常寫的 world/region 與 DIM-1 在新版都已經不使用,因此備份時要複製整個資料夾,不要只挑 region。下圖左邊是 1.21.11 的世界,右邊是 26.3 的世界:
開啟伺服器後發現世界變成全新的地圖時,原本的世界通常還在。主控台的 Preparing level 顯示的名稱如果不是 world,就代表 level-name 被改過,改回原本的名稱再啟動即可。
備份世界
下面的步驟要關閉伺服器,server.properties 與 plugins 都不用動:
- 在伺服器視窗輸入
stop,等伺服器存檔結束。 - 用檔案總管開啟伺服器資料夾,對
world按右鍵並選擇「複製」,再按右鍵選擇「貼上」。 - 把貼上的副本改名成當天的日期,例如
world-20261106。 - 啟動伺服器,繼續遊戲。
完成後,伺服器資料夾裡會同時有 world 和剛才的備份:

打開 world-20261106,裡面看得到 level.dat 與 dimensions 就代表備份完成。把這個資料夾再複製到另一顆硬碟或隨身碟時,硬碟故障也不會讓世界和備份一起遺失。
還原世界
要還原時,先把現在的世界改名保留,再把備份放回去。server.properties、plugins 與 jar 檔都不用動:
- 在伺服器視窗輸入
stop,等伺服器結束。 - 把
world改名成world-before-restore。還原結果不對時,把它改回world就能回到還原之前的狀態。 - 複製
world-20261106,貼上後把副本改名成world。備份本身要留著,之後才能再次使用。 - 啟動伺服器,等它印出
Done,再進遊戲確認世界回到了備份時的狀態。
還原完成時,資料夾的樣子如下:

進遊戲後就會看到世界回到備份時的樣子。下圖是我用遊戲連線拍的,左邊是備份後把方塊換成金磚的世界,右邊是還原後回到鑽石磚的世界:

world-before-restore 確定用不到時再刪除。
想用指令確認時,可以在備份前放一塊標記方塊,座標換成沒有人會去的地方,備份後再把它換成別的方塊,例如金磚。還原後在伺服器視窗檢查它,出現 Test passed 就代表世界回到了備份時的狀態:
1forceload add 3000 3000
2setblock 3000 300 3000 minecraft:diamond_block
3execute if block 3000 300 3000 minecraft:diamond_block
level.dat 損毀的處理
level.dat 記錄世界的時間、重生點、難度與遊戲版本。26.3 的方塊存在 dimensions,遊戲規則與計分板存在 data/minecraft,因此這個檔案損毀時,這些資料都還在。依下表判斷要怎麼處理:
| 情況 | 伺服器的反應 | 處理方式 |
|---|---|---|
只有 level.dat 損毀 |
自動改用 level.dat_old,正常啟動 |
不用處理 |
level.dat 與 level.dat_old 都損毀 |
無法啟動 | 從備份複製 level.dat |
| 兩個都損毀,也沒有備份 | 無法啟動 | 從同版本的新世界複製一份 level.dat |
只有 level.dat 損毀時,主控台會印出 Attempting to use fallback,最後仍然會出現 Done,我們不用手動把 level.dat_old 改名:

兩個檔案都損毀時,主控台最後一行是 World files may be corrupted. Shutting down.,伺服器會直接結束。這時不用還原整個世界,只要把備份裡的 level.dat 複製到 world,備份之後的建築就能保留下來。
沒有備份時,可以先把 level-name 改成 donor 並啟動一次,建立同版本的新世界。接著把 donor/level.dat 複製到 world,再把 level-name 改回 world 並啟動。這樣做之後,方塊、種子、遊戲規則與計分板都會保留,但世界的時間與重生點會變成新世界的值,要用 setworldspawn X Y Z 改回原本的重生點。
升級前的準備
升級後想降回舊版本時,只能還原升級前的備份,因為舊版的 jar 不會把新版的世界轉回去。因此升級前要留下備份與舊版的 jar,回退時照「還原世界」的步驟放回備份,並在啟動前把 jar 檔換回舊版。
直接用舊版開啟新版的世界,世界可能會被破壞。我用 26.2 開啟 26.3 的世界時,伺服器仍然印出 Done,但載入過的區塊都變成空氣,改回 26.3 也無法恢復。
不關閉伺服器的備份
如果伺服器不方便關閉,就要先暫停自動存檔再壓縮世界。伺服器開著時直接複製世界會在 session.lock 這個檔案報錯,這個流程要用到命令提示字元:
-
在伺服器視窗輸入
save-off,暫停把資料寫進世界資料夾。 -
輸入
save-all flush,把目前的資料全部寫進硬碟,看到Saved the game再繼續。少了這一步時,最近放的方塊不會進入備份。 -
在伺服器資料夾開啟命令提示字元,輸入下面的指令壓縮世界。
tar是 Windows 11 內建的工具,--exclude=session.lock也不能省略,否則會留下 0 位元組的壓縮檔:1tar -a -cf world-20261106.zip --exclude=session.lock world -
壓縮完成後,回到伺服器視窗輸入
save-on,恢復自動存檔。
伺服器視窗的輸出如下:

還原時要先照「還原世界」的步驟關閉伺服器並把 world 改名,再輸入 tar -xf world-20261106.zip 解壓縮,資料夾裡就會出現新的 world。
實測紀錄
測試伺服器沒有玩家連線。關閉伺服器複製資料夾的做法,我在原版 26.3 放一塊鑽石磚後備份,把它換成金磚,再照步驟還原,鑽石磚與種子碼都回到備份時的值,也用遊戲連線確認過畫面。不關閉伺服器的做法則在三個維度各放一塊方塊,也設定一個計分板的分數與一條遊戲規則,原版 26.3 與 Paper 26.3 的 build 238 都回到備份時的值。檔案總管的複製與改名是用相同效果的指令執行,畫面則是實際的資料夾。
總結
留一份能還原的世界,只要關閉伺服器並複製整個世界資料夾,還原時再把備份放回去。實測還原後,標記方塊與種子碼都回到備份時的狀態。