arm fnOS飛牛系統(tǒng)從emmc遷移至 NVMe 硬盤全指南

核心邏輯

通過物理克?。?code>dd)將舊分區(qū)的每一個字節(jié)搬運到新分區(qū),通過修改 UUID 解決識別沖突,最后通過修改引導(dǎo)參數(shù)(PARTUUID)強制內(nèi)核切換啟動設(shè)備。


第一階段:準備新硬盤分區(qū)

在操作前,需確保 NVMe 硬盤上的重要數(shù)據(jù)已備份。

  1. 進入分區(qū)工具:
    sudo fdisk /dev/nvme0n1
    
  2. 刪除舊分區(qū)(如有): 輸入 d。
  3. 新建分區(qū):
    • 輸入 n (新建) -> p (主分區(qū)) -> 1 (分區(qū)號)。
    • First sector: 直接回車(默認 2048)。
    • Last sector: 輸入 +64G(或其他你想要的大?。?/li>
  4. 清除特征碼: 如果提示 Contains a zfs_member signature,輸入 y 確認清除。
  5. 保存: 輸入 w 寫入分區(qū)表并退出。
  6. 強制內(nèi)核刷新分區(qū):
    sudo partprobe /dev/nvme0n1
    

第二階段:全量克隆系統(tǒng) (Rootfs)

使用 dd 命令進行位對位克隆。

# if 為源(SD/eMMC), of 為目標(biāo)(NVMe)
sudo dd if=/dev/mmcblk0p2 of=/dev/nvme0n1p1 bs=1M conv=noerror,sync status=progress

注意:克隆完成后,兩個分區(qū)的 UUID 將完全一致,此時切勿重啟。


第三階段:解決 UUID 沖突與文件系統(tǒng)優(yōu)化

為了讓系統(tǒng)區(qū)分開新舊兩個“雙胞胎”分區(qū),必須修改新分區(qū)的身份 ID。

  1. 生成并修改新 UUID:
    NEW_UUID=$(uuidgen)
    sudo btrfstune -U $NEW_UUID /dev/nvme0n1p1
    
  2. 修正新系統(tǒng)內(nèi)的掛載表 (fstab):
    sudo mount /dev/nvme0n1p1 /mnt
    sudo nano /mnt/etc/fstab
    
    / 掛載點那一行的 UUID= 修改為剛才生成的新 UUID。
  3. 擴容文件系統(tǒng):
    由于 dd 只是克隆了原分區(qū)大小,需手動填滿 64G 空間:
    sudo btrfs filesystem resize max /mnt
    sudo umount /mnt
    

第四階段:注入 NVMe 驅(qū)動(可忽略,一般都有驅(qū)動)

這是最容易被忽略的一步。如果內(nèi)核啟動鏡像(initramfs)里沒有 NVMe 驅(qū)動,系統(tǒng)將無法識別硬盤。

  1. 添加驅(qū)動模塊:
    sudo nano /etc/initramfs-tools/modules
    
    在末尾添加:
    nvme
    pcie-rockchip
    
  2. 更新啟動鏡像:
    sudo update-initramfs -u
    

第五階段:修改引導(dǎo)參數(shù) (最關(guān)鍵)

由于 FN-OS 的引導(dǎo)程序比較“固執(zhí)”,我們需要通過 PARTUUID 強制覆蓋啟動路徑。

  1. 查看 NVMe 的 PARTUUID:
    blkid /dev/nvme0n1p1
    # 記下 PARTUUID="f972c3cb-..."
    
  2. 修改引導(dǎo)配置文件:
    sudo nano /boot/fnEnv.txt
    
  3. 設(shè)置強制啟動參數(shù):
    extraargs 中加入 rootwaitroot=PARTUUID=...,確保它位于參數(shù)鏈末尾以獲得最高優(yōu)先級。
    extraargs=cma=256M rootwait root=PARTUUID=你的新PARTUUID
    rootdev=UUID=你的新UUID
    

第六階段:重啟與驗證

執(zhí)行 sudo reboot。

驗證命令:

lsblk

如果根目錄 / 對應(yīng)的設(shè)備是 nvme0n1p1,遷移大功告成!


進階小貼士

  • 舊分區(qū)處理: 建議穩(wěn)定運行幾天后再格式化舊的 mmcblk0p2,將其作為數(shù)據(jù)盤或備用系統(tǒng)。
  • 性能提升: NVMe 的隨機讀寫性能(IOPS)遠超 SD 卡,你會發(fā)現(xiàn)系統(tǒng)更新、數(shù)據(jù)庫運行和網(wǎng)頁打開速度有質(zhì)的飛躍。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容