◎班級電腦自動還原

最近利用再生龍做了班級電腦自動還原的方案,同時處理了幾項自動化流程,讓老師可以自行還原,而且還原方法很簡單,老師只要自己按三個鍵就開始還原,還原之後電腦自動改名稱、自動加入網域,並在登入後自動安裝防毒,佈署下去之後等於寒暑假不用再跑班了…

還原方式真的簡單,三個鍵而已…

第一鍵-開機按下F12
第二鍵-方向鍵選擇開機啟動磁區、
第三鍵-按下ENTER開始還原

使用AI改了一張ocswp-grub2的背景圖,提示老師系統即將還原…

老師自行還原操作步驟:

第一步-開機看到ACER字樣時按下鍵盤F12

第二步-選擇TS512GMTE228SS, Partition 4

看到開機選單後透過方向鍵選擇下圖TS512GMTE228SS這顆硬碟的第4分割區

第三步-按下ENTER鍵啟動還原

開機選單選好之後按下ENTER就會開始還原,底下為還原示意圖(與現實不符),因為我從影片中擷取還原進度的畫面解析度不佳,丟給AI優化結果出了這張很夢幻的還原進度圖,真要改成這樣超出我能力所及,留著欣賞紀念一下就好…

錄了影片提供老師操作使用

影片中的流程,請AI摘要如下:


電腦自動還原流程說明:

🔄 班級電腦系統還原流程:

  1. 重新啟動電腦:發現電腦有問題時,先將電腦重新啟動。
  2. 抓準時機按下 F12 鍵:將手放在鍵盤的 F12 鍵上準備,當開機螢幕上出現「ACER」畫面時,按下 F12 鍵。
  3. 選擇還原磁區 (Partition 4):在跳出的開機選單中,選擇「第二個選項」(選項後方會標示 partition 4),並按下 Enter 鍵進入自動還原程序。
    等待系統跑還原進度:畫面會停頓 5 秒鐘,接著開始跑還原進度條。大約需要花費 2-3 分鐘的時間,這段期間不需進行任何操作。
  4. 第一次自動重啟 (更改電腦名稱):還原進度跑完並開機進入系統後,請暫時不要碰電腦。系統會自動執行「更改電腦名稱」的動作,完成後會自己再重新啟動一次 。
  5. 第二次自動重啟 (加入學校內網):第二次重開機進入系統後,同樣請先不要操作電腦。此時系統會自動執行「加入學校內網」的程序,設定完畢後會進行最後一次重新開機。
  6. 完成還原並登入:當最後一次開機進入登入畫面後,整個還原過程即告完成。老師可以輸入帳號密碼開始使用 。
    • 💡 溫馨提醒:第一次登入進入桌面時,系統會在背景自動安裝「防毒軟體」,這不會影響操作,老師可以直接使用電腦不需理會 。

本次製作無人值守自動還原的幾個關鍵點

1.還原後的電腦名稱需變更
2.變更後的電腦名稱才能加入網域
3.製作還原用的映像檔
4.調整grub.cfg的開機選單


電腦還原後的自動化作業

佈署deploy自動化控制

第1、2項透過自動化處理,於是在c磁碟佈署deploy資料匣,這個資料匣設為隱藏避免誤觸

deploy裏頭設置需要的工具rename.exe、AD.exe,另外於啟動置入run_ad.cmd控制自動化流程

路徑配置如下:
C:\deploy\rename.exe
C:\deploy\AD.exe
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\run_ad.cmd

run_ad.cmd的內容如下:
在執行rename.exe之後下旗幟rename_done.flag,避免每次開機反覆執行變更電腦名稱
在執行AD.exe之後下旗幟ad_done.flag,避免每次開機反覆執行加入網域
補充:
沒有在此處理重新啟動,因為個別寫在rename.exe、AD.exe裏頭執行,也沒有處理防毒軟體,因為一直都是初次進入網域的電腦自動透過autopcc安裝防毒。

@echo off
cd /d C:\deploy
REM ===== Step 1: rename computer =====
if not exist C:\deploy\rename_done.flag (
    echo Running rename...
    rename.exe
    echo done > C:\deploy\rename_done.flag
    exit
)
REM ===== Step 2: join AD =====
if not exist C:\deploy\ad_done.flag (
    echo Running AD join...
    AD.exe
    echo done > C:\deploy\ad_done.flag
    exit
)
REM ===== All done =====
echo Deployment finished
exit

還原後自動更改電腦名稱

接下來自動更名的處理是關鍵,該如何讓每台電腦知道自己的教室位置或編號?本來想在本機製作一個清單讓程式比對後進行更名,但這個清單會變成日後無法即時更新。所以必須改為線上方案,可是卡在資安考量我SMB服務都透過AD封鎖了,找個單機或NAS來處理這件事又顯得礙手礙腳,也需要處理權限問題,測試時也覺得不理想。最後問了AI可以透過Google試算表來處理嗎?哈~解決了…

先從DHCP匯出所有電腦的資料,會包含電腦名稱、IP、mac…校內九成以上的電腦都做了IP保留所以可以透過IP來綁定電腦名稱,但也怕萬一將來有個變動時會遇到問題,所以選擇最穩定的方式綁mac而不是綁IP…反正每間教室那台電腦若非換機或是換板子,mac都是不動如山的待在教室,也因為是Google試算表,日後隨時要修改名稱或是更改mac都方便,在教室現場手機拿出來隨時修改立即生效。

rename.exe內容找AI處理…先建立試算表並設定共用後”在雙引號內填入我的Google試算表共用網址“,到這邊deploy就佈署完成,電腦還原後會透過run_ad.cmd來控制rename.exe,電腦改名的問題就解決…

# ==========================================
# 靜默版:自動讀取 Google 表單 CSV 改名
#  ==========================================
...中間省略
...中間省略
...中間省略
# 1. Google 試算表 CSV 匯出網址
$csvUrl = "在雙引號內填入我的Google試算表共用網址"
...中間省略
...中間省略
...中間省略
}

磁碟分割規劃

接下來就可以進行作業系統安裝,Windows11系統+更新+軟體很容易就4-50GB,所以C碟我都切200GB。為了將還原映像檔做在本機所以切了一個FAT32的RESTORE分割區,N4670G硬碟有500GB所以留50GB給RESTORE,D磁碟仍游刃有餘;但是N4660G硬碟只有238GB,在備份c碟之後映像檔實際需要21GB,所以很勉強的在N4660G上只切22GB容量給RESTORE,而它的D磁碟就只剩下很難看的15GB左右。

備註:
Windows10開始磁碟格式化FAT32限制在32GB以下,可以透過Gparted Live USB處理超過32GB的FAT32磁碟格式,但是我一開始沒留意所以做出了NTFS,由於RESTORE還需要隱藏磁區,所以後來改用mini tools partition來處理RESTORE分割區的問題。


製作再生龍的映像檔

因為目標是要給老師自行操作還原,需要做成本機還原而不是透過Clonezilla Live USB,所以有幾個地方要小心別做錯:

1.首先RESTORE是放置映像檔的分割區,為了讓RESTORE這個隱藏分割區能啟動,所以必須在FAT32環境下才能正常執行makeboot64。

2.製作本機還原使用Clonezilla打包時,掛載的磁區(RESTORE或其他隨身碟)都必須是FAT32,打包過程才能將映像檔分割為單一檔案不超過4GB,如果這邊沒有掛載FAT32磁碟進行打包,最後這個檔案將無法放回RESTORE磁碟。

3.因為需要製作產生回復專用的映像檔.zip,在將FAT32底下製作出來的映像檔再次透過再生龍製作產生回復專用的映像檔.zip時,因為這個打包的zip檔案最後一定會超過4GB,但FAT32不支援單一檔案大小超過4GB,所以可以先複製FAT32裏頭的clonzilla映像檔到其他NTFS磁碟掛載後再進行轉換來產生回復專用的映像檔.zip,這樣產生回復專用的映像檔.zip檔案大小在超過4GB的情況下才能被NTFS磁碟區保留下來。

4.接著再將產出回復專用的映像檔.zip中的所有檔案全部解壓縮到隱藏分割RESTORE根目錄

5.將Grub.cfg改為無人值守,首先第4行set timeout=”3″,進入還原後畫面停留3秒(預設30秒)

底下只保留進入clonezilla後第一組選單的menuentry ,第二組之後的全部刪掉避免老師誤觸

第一組menuentry指令後面-edio後的參數-c改為-batch、參數-p後面確認為reboot,存檔後只差最後一步就完成設定

6.最後進到RESTORE\utils\win64底下執行makeboot64.cmd,按一下任意鍵開始檢查RESTORE環境是否為FAT32

如果正確就會顯示綠色背景,完成之後再按任意鍵即可跳出

成功執行makeboot64.cmd後,開機選單就會出現這個分割區,老師只要按下ENTER就會啟動還原。

發佈留言