時(shí)如何保留數(shù)據(jù)盤并避免誤格式化)
簡介這份PDF文檔面向具備一定Linux操作基礎(chǔ)的技術(shù)人員與高級用戶聚焦銀河麒麟桌面操作系統(tǒng)V10SP1在保留“數(shù)據(jù)盤”前提下的系統(tǒng)重裝場景解決重裝過程中數(shù)據(jù)丟失與分區(qū)掛載失效的痛點(diǎn)。資源包共1個(gè)PDF文件大小約2.9MB內(nèi)容圍繞磁盤分區(qū)識別、UUID獲取、fstab掛載配置等關(guān)鍵環(huán)節(jié)展開涵蓋從liveCD模式查看分區(qū)信息、自定義安裝時(shí)避免格式化數(shù)據(jù)盤到重裝后通過命令行編輯/etc/fstab并創(chuàng)建掛載目錄、驗(yàn)證掛載結(jié)果的完整流程。目前已有1626人學(xué)習(xí)下載適合需要在升級或重裝系統(tǒng)時(shí)保護(hù)個(gè)人數(shù)據(jù)、同時(shí)希望掌握Linux分區(qū)與自動(dòng)掛載技能的用戶參考可幫助讀者理解各命令作用降低誤操作風(fēng)險(xiǎn)提升系統(tǒng)維護(hù)效率。1. 銀河麒麟 V10 SP1 重裝為什么“數(shù)據(jù)盤”總是第一個(gè)被誤傷裝過銀河麒麟桌面操作系統(tǒng) V10 SP1 的人大多有過這種經(jīng)歷系統(tǒng)盤出了毛病想著重裝一遍圖個(gè)干凈結(jié)果安裝器一路“下一步”點(diǎn)下去進(jìn)桌面一看原來掛在/data或者/home的那塊盤被重新分區(qū)了幾年的資料沒了。問題不在麒麟本身而在安裝流程默認(rèn)走的是“全盤自動(dòng)分區(qū)”它不會替你區(qū)分哪塊是系統(tǒng)盤、哪塊是數(shù)據(jù)盤。標(biāo)題里說的“保留數(shù)據(jù)盤重裝”本質(zhì)就是一件事讓安裝器只動(dòng)系統(tǒng)盤數(shù)據(jù)盤的分區(qū)表和文件系統(tǒng)原封不動(dòng)裝完再把掛載點(diǎn)接回去。這套做法適合運(yùn)維、信創(chuàng)適配工程師以及手上有第二塊 SSD 或獨(dú)立數(shù)據(jù)分區(qū)的普通用戶。下面按“先分清盤、再手動(dòng)分區(qū)、最后回掛”的順序講透中間會用到lsblk、blkid、/etc/fstab這些繞不開的工具也會說清自定義安裝里掛載點(diǎn)到底怎么填。2. 重裝前必須搞清的三件事盤、分區(qū)表、掛載點(diǎn)動(dòng)手之前如果連哪塊盤是系統(tǒng)盤都沒確認(rèn)后面全是玄學(xué)。這一章先把判斷依據(jù)和備份動(dòng)作做扎實(shí)再談安裝器里的操作。2.1 用 lsblk 和 blkid 認(rèn)清系統(tǒng)盤與數(shù)據(jù)盤在還能進(jìn)系統(tǒng)的麒麟 V10 SP1 上打開終端先跑這兩條命令。它們不會改任何東西只是把磁盤拓?fù)浜?UUID 讀出來。# 查看塊設(shè)備樹狀結(jié)構(gòu)重點(diǎn)看 disk 與 part 的從屬關(guān)系 lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT,LABEL # 查看每個(gè)分區(qū)的 UUID 和文件系統(tǒng)類型UUID 是后面 fstab 要用的 sudo blkidlsblk輸出里disk行是物理盤如sda、nvme0n1縮進(jìn)在下面的part是它上面的分區(qū)??碝OUNTPOINT列掛著/、/boot、/boot/efi的那塊盤就是系統(tǒng)盤掛著/data、/home或者干脆沒掛載但容量很大的通常是數(shù)據(jù)盤。blkid給出每個(gè)分區(qū)的UUID這是文件系統(tǒng)的唯一標(biāo)識比/dev/sdb1這種設(shè)備名可靠得多——設(shè)備名會隨插拔順序變UUID 不會。判斷清楚后把數(shù)據(jù)盤的關(guān)鍵信息抄下來設(shè)備名、UUID、文件系統(tǒng)類型ext4 / xfs、原來的掛載點(diǎn)。這三樣是重裝后能不能原樣接回去的關(guān)鍵。我一般會直接存一份到手機(jī)備忘錄因?yàn)橹匮b過程中系統(tǒng)進(jìn)不去查不了。提示如果數(shù)據(jù)盤和系統(tǒng)盤是同一塊物理盤上的不同分區(qū)保留數(shù)據(jù)盤的難度會高很多因?yàn)榘惭b器分區(qū)時(shí)容易誤刪相鄰分區(qū)。這種情況建議先把數(shù)據(jù)盤內(nèi)容拷到外置硬盤再考慮重裝。2.2 數(shù)據(jù)盤要不要先卸載、備份到什么程度確認(rèn)盤之后做一次針對性備份。不是讓你把整個(gè)數(shù)據(jù)盤復(fù)制一遍而是把“丟了會疼”的部分單獨(dú)拎出來數(shù)據(jù)庫目錄、配置文件、證書、代碼倉庫里沒 push 的分支。用rsync同步到外置盤或網(wǎng)絡(luò)存儲# 把數(shù)據(jù)盤掛載點(diǎn)同步到外置盤-a 保留權(quán)限屬性-v 顯示進(jìn)度--delete 讓目標(biāo)與源一致 rsync -av --delete /data/ /media/backup/data/參數(shù)說明-a等于-rlptgoD保留符號鏈接、權(quán)限、時(shí)間戳等--delete會刪掉目標(biāo)端多余的文件讓備份和目標(biāo)完全一致第一次用要確認(rèn)路徑?jīng)]寫反。備份完順手umount /data把數(shù)據(jù)盤卸載避免安裝器掃描時(shí)把它當(dāng)成可操作對象。這里有個(gè)容易忽略的點(diǎn)銀河麒麟 V10 SP1 默認(rèn)可能啟用了磁盤加密或 LVM。如果lsblk里看到crypt或lvm類型的層數(shù)據(jù)盤很可能是 LUKS 加密卷或邏輯卷。加密卷重裝后需要重新解鎖才能掛載邏輯卷則要確認(rèn)卷組名沒被安裝器覆蓋。這兩種情況在自定義分區(qū)界面里表現(xiàn)不一樣下一章會分別說。2.3 自定義安裝里“掛載點(diǎn)”到底填什么很多人卡在安裝器的分區(qū)界面是因?yàn)椴恢馈皰燧d點(diǎn)”這一欄該填/還是/data。規(guī)則其實(shí)很簡單掛載點(diǎn)是這個(gè)分區(qū)在系統(tǒng)里的“入口路徑”。系統(tǒng)盤的分區(qū)填/、/boot、/boot/efi數(shù)據(jù)盤的分區(qū)填你原來用的路徑比如/data或/home。關(guān)鍵動(dòng)作是在分區(qū)界面里只對系統(tǒng)盤執(zhí)行刪除和新建數(shù)據(jù)盤的分區(qū)要選中后點(diǎn)“編輯”把“格式化”勾選去掉掛載點(diǎn)填回原來的路徑。如果安裝器不允許對已有分區(qū)直接設(shè)掛載點(diǎn)就先記下它的設(shè)備名裝完系統(tǒng)再手動(dòng)寫/etc/fstab。這一步的判斷依據(jù)就是 2.1 里抄下來的 UUID 和掛載點(diǎn)填錯(cuò)一個(gè)字符輕則掛不上重則安裝器把數(shù)據(jù)盤當(dāng)空閑空間處理。3. 手動(dòng)分區(qū)實(shí)操只動(dòng)系統(tǒng)盤數(shù)據(jù)盤原樣保留這一章是核心操作。銀河麒麟 V10 SP1 的安裝器基于 Anaconda 改的分區(qū)界面邏輯和主流 Linux 發(fā)行版接近但中文措辭和默認(rèn)選項(xiàng)有自己的脾氣。下面按界面順序走一遍。3.1 進(jìn)入安裝器的分區(qū)界面并選“手動(dòng)分區(qū)”用制作好的啟動(dòng) U 盤引導(dǎo)走到“安裝類型”或“安裝位置”這一步時(shí)不要選“自動(dòng)分區(qū)”或“清除整個(gè)磁盤”。選“手動(dòng)分區(qū)”或“自定義分區(qū)”進(jìn)入分區(qū)表編輯界面。此時(shí)安裝器會列出所有檢測到的磁盤和分區(qū)包括你的數(shù)據(jù)盤。先做一件事在列表里找到數(shù)據(jù)盤對應(yīng)的分區(qū)確認(rèn)它的“格式化”狀態(tài)是未勾選。如果安裝器默認(rèn)勾了“格式化”手動(dòng)取消。然后找到系統(tǒng)盤把上面的舊分區(qū)逐個(gè)刪除——注意只刪系統(tǒng)盤上的刪之前再核對一遍設(shè)備名sda和sdb看錯(cuò)一位就是災(zāi)難。刪除系統(tǒng)盤分區(qū)后在空閑空間上新建。UEFI 啟動(dòng)的機(jī)器至少需要三個(gè)分區(qū)掛載點(diǎn)建議大小文件系統(tǒng)說明/boot/efi300–500 MBEFI System PartitionUEFI 啟動(dòng)必需不要格式化數(shù)據(jù)盤上的同名分區(qū)/boot1–2 GBext4內(nèi)核和引導(dǎo)文件獨(dú)立出來便于排錯(cuò)/剩余空間ext4 或 xfs根分區(qū)銀河麒麟默認(rèn) ext4 兼容性更好如果機(jī)器是傳統(tǒng) BIOS 啟動(dòng)則不需要/boot/efi但要有/boot和/。分區(qū)大小不用摳太死/給 50 GB 以上比較穩(wěn)妥剩下空間可以再分一個(gè)/home或直接并入/。3.2 數(shù)據(jù)盤分區(qū)在安裝器里的正確設(shè)置數(shù)據(jù)盤分區(qū)在列表里通常顯示為“未知”或已有文件系統(tǒng)類型。選中它點(diǎn)“編輯”或“更改”。在彈出的對話框里掛載點(diǎn)填回原來的路徑比如/data文件系統(tǒng)類型保持原樣不要改成別的最重要的一步取消勾選“格式化此分區(qū)”或“重新創(chuàng)建文件系統(tǒng)”。如果安裝器沒有“編輯已有分區(qū)掛載點(diǎn)”的選項(xiàng)就跳過讓它保持未掛載狀態(tài)。裝完系統(tǒng)后手動(dòng)掛載效果一樣而且更可控。有些版本的安裝器在自定義分區(qū)界面會對非系統(tǒng)盤分區(qū)顯示“將保留”或“將刪除”的標(biāo)記務(wù)必確認(rèn)數(shù)據(jù)盤分區(qū)標(biāo)記是“保留”。注意如果數(shù)據(jù)盤是 LUKS 加密卷安裝器可能識別為crypt類型且無法直接設(shè)掛載點(diǎn)。這種情況不要強(qiáng)行操作裝完系統(tǒng)后用cryptsetup luksOpen解鎖再掛載具體命令在 4.2 里給。分區(qū)方案確認(rèn)后安裝器會彈出“將要執(zhí)行以下操作”的摘要。這是最后一道后悔藥逐行核對確認(rèn)“格式化”列表里只有系統(tǒng)盤分區(qū)數(shù)據(jù)盤分區(qū)只出現(xiàn)在“掛載”或“保留”列表里。確認(rèn)無誤再點(diǎn)“開始安裝”。3.3 安裝過程中的觀察點(diǎn)與中斷處理安裝開始后進(jìn)度條走到“正在創(chuàng)建文件系統(tǒng)”和“正在安裝引導(dǎo)程序”時(shí)最容易出問題。如果卡在創(chuàng)建文件系統(tǒng)超過十分鐘可能是數(shù)據(jù)盤分區(qū)被誤判為需要格式化或者磁盤有壞道。此時(shí)不要強(qiáng)行斷電先看安裝器下方的日志窗口如果有找sda、sdb相關(guān)的報(bào)錯(cuò)行。如果確認(rèn)數(shù)據(jù)盤被誤操作唯一能救的是提前做的備份。這也是為什么 2.2 的rsync不能省。安裝完成后第一次重啟拔掉 U 盤讓系統(tǒng)從硬盤引導(dǎo)。如果引導(dǎo)失敗用啟動(dòng) U 盤進(jìn)救援模式檢查/boot/efi和/boot是否完整。安裝器里還有一個(gè)細(xì)節(jié)銀河麒麟 V10 SP1 某些版本會在安裝末尾詢問是否“保留用戶數(shù)據(jù)”或“遷移舊配置”這個(gè)選項(xiàng)和保留數(shù)據(jù)盤是兩回事它指的是系統(tǒng)盤上舊/home的內(nèi)容。如果系統(tǒng)盤已經(jīng)刪干凈這個(gè)選項(xiàng)不會出現(xiàn)不用糾結(jié)。4. 裝完系統(tǒng)后把數(shù)據(jù)盤接回去fstab 與權(quán)限修復(fù)系統(tǒng)裝好能進(jìn)桌面只完成了一半。數(shù)據(jù)盤現(xiàn)在還在但系統(tǒng)不認(rèn)識它。這一章把掛載和權(quán)限收尾讓數(shù)據(jù)盤回到重裝前的狀態(tài)。4.1 用 UUID 寫 fstab 并驗(yàn)證掛載先確認(rèn)數(shù)據(jù)盤分區(qū)還在并且文件系統(tǒng)沒壞# 查看所有分區(qū)確認(rèn)數(shù)據(jù)盤分區(qū)存在且 FSTYPE 正常 lsblk -f # 對數(shù)據(jù)盤分區(qū)做只讀檢查ext4 用 e2fsckxfs 用 xfs_repair -n sudo e2fsck -n /dev/sdb1lsblk -f會顯示每個(gè)分區(qū)的 UUID、文件系統(tǒng)類型和掛載點(diǎn)。如果數(shù)據(jù)盤分區(qū)的FSTYPE是空的或顯示crypto_LUKS說明文件系統(tǒng)沒被識別先別急著掛載。e2fsck -n是只讀檢查-n表示對所有詢問回答 no不會改數(shù)據(jù)用來確認(rèn)文件系統(tǒng)沒損壞。確認(rèn)無誤后編輯/etc/fstab# 先備份 fstab改錯(cuò)了還能救 sudo cp /etc/fstab /etc/fstab.bak # 用 UUID 追加數(shù)據(jù)盤掛載項(xiàng)UUID 換成 blkid 查到的實(shí)際值 echo UUID你的數(shù)據(jù)盤UUID /data ext4 defaults,noatime 0 2 | sudo tee -a /etc/fstab # 不重啟驗(yàn)證 fstab 是否正確-a 掛載所有未掛載項(xiàng)--verbose 顯示過程 sudo mount -a --verbose參數(shù)說明defaults包含rw,suid,dev,exec,auto,nouser,asyncnoatime表示不記錄文件訪問時(shí)間能減少寫入、延長 SSD 壽命第一個(gè)0是 dump 備份標(biāo)志桌面場景用不到第二個(gè)2是 fsck 檢查順序非根分區(qū)用 2。mount -a如果沒報(bào)錯(cuò)說明 fstab 寫對了數(shù)據(jù)盤已經(jīng)掛到/data。4.2 加密數(shù)據(jù)盤與 LVM 數(shù)據(jù)盤的掛載差異如果數(shù)據(jù)盤是 LUKS 加密卷blkid會顯示TYPEcrypto_LUKS。這時(shí)不能直接寫 fstab 掛載要先解鎖# 解鎖 LUKS 加密卷解鎖后會生成 /dev/mapper/data_crypt sudo cryptsetup luksOpen /dev/sdb1 data_crypt # 查看解鎖后的文件系統(tǒng)類型 lsblk -f /dev/mapper/data_crypt # 掛載解鎖后的設(shè)備 sudo mount /dev/mapper/data_crypt /dataluksOpen的第二個(gè)參數(shù)data_crypt是映射名可以自定義但要和后續(xù) fstab 里的/dev/mapper/data_crypt一致。如果希望開機(jī)自動(dòng)解鎖需要配置/etc/crypttab但桌面場景下每次手動(dòng)輸密碼更安全也避免忘記密碼后系統(tǒng)卡在啟動(dòng)階段——熱詞里“請解鎖磁盤密碼忘記了”就是這類翻車。LVM 數(shù)據(jù)盤則用vgscan、lvscan確認(rèn)卷組和邏輯卷是否還在sudo vgscan sudo lvscan sudo mount /dev/卷組名/邏輯卷名 /data如果vgscan找不到卷組說明安裝器可能覆蓋了 LVM 元數(shù)據(jù)這種情況只能從備份恢復(fù)沒有別的后悔藥。4.3 修復(fù)屬主、屬組和 SELinux 上下文掛載成功后ls -l /data可能顯示文件屬主是數(shù)字 UID 而不是用戶名。這是因?yàn)橹匮b后新系統(tǒng)的用戶 UID 和舊系統(tǒng)不一致。修復(fù)方法是把數(shù)據(jù)盤上的文件屬主改成當(dāng)前用戶# 查看當(dāng)前用戶的 UID 和 GID id # 遞歸修改數(shù)據(jù)盤屬主-R 遞歸用戶名和組名換成 id 命令查到的 sudo chown -R 用戶名:組名 /data # 如果系統(tǒng)啟用了 SELinux恢復(fù)默認(rèn)上下文 sudo restorecon -Rv /datachown -R對大量文件會慢但桌面數(shù)據(jù)盤通??梢越邮?。restorecon只在 SELinux 為 enforcing 或 permissive 時(shí)需要銀河麒麟桌面版默認(rèn)可能是 disabled用getenforce確認(rèn)。如果數(shù)據(jù)盤上有數(shù)據(jù)庫或容器數(shù)據(jù)屬主修改要謹(jǐn)慎最好按原 UID 新建用戶而不是改文件屬主。5. 避坑與排查重裝保留數(shù)據(jù)盤最常見的五個(gè)翻車點(diǎn)這一章按“現(xiàn)象 → 原因 → 解決”列五條都是實(shí)際裝機(jī)器時(shí)反復(fù)遇到的?,F(xiàn)象一裝完系統(tǒng)進(jìn)桌面數(shù)據(jù)盤分區(qū)消失lsblk里只剩系統(tǒng)盤。原因安裝器分區(qū)界面里數(shù)據(jù)盤分區(qū)被標(biāo)記為“刪除”或“格式化”或者數(shù)據(jù)盤和系統(tǒng)盤在同一塊物理盤上刪除系統(tǒng)盤分區(qū)時(shí)把整盤分區(qū)表重建了。 解決如果分區(qū)表剛被重建且沒寫入新數(shù)據(jù)用testdisk嘗試恢復(fù)分區(qū)表如果已經(jīng)寫入只能從 2.2 的備份恢復(fù)。預(yù)防辦法是分區(qū)前逐行核對安裝器摘要?,F(xiàn)象二數(shù)據(jù)盤分區(qū)還在但mount報(bào)wrong fs type或bad superblock。原因文件系統(tǒng)類型判斷錯(cuò)比如把 xfs 當(dāng) ext4 掛或者數(shù)據(jù)盤是 LUKS 加密卷沒解鎖就直接掛。 解決用blkid確認(rèn)TYPEext4 用mount -t ext4xfs 用mount -t xfscrypto_LUKS先cryptsetup luksOpen?,F(xiàn)象三fstab 寫好后重啟系統(tǒng)卡在 emergency mode。原因fstab 里 UUID 寫錯(cuò)或者數(shù)據(jù)盤沒接上導(dǎo)致掛載失敗systemd 進(jìn)入緊急模式。 解決在 emergency mode 下輸入 root 密碼mount -o remount,rw /重新掛載根分區(qū)為可寫然后編輯/etc/fstab注釋掉出錯(cuò)行重啟后再排查。預(yù)防辦法是寫完 fstab 先mount -a驗(yàn)證不要直接重啟?,F(xiàn)象四數(shù)據(jù)盤掛上了但普通用戶無法寫入提示權(quán)限不足。原因重裝后新用戶 UID 與舊系統(tǒng)不同文件屬主變成數(shù)字 UID或者掛載選項(xiàng)里帶了ro。 解決id查當(dāng)前 UIDchown -R改屬主檢查 fstab 掛載選項(xiàng)確保沒有ro必要時(shí)加umask000或uid、gid選項(xiàng)僅限 FAT/NTFS 等不支持 Linux 權(quán)限的文件系統(tǒng)?,F(xiàn)象五數(shù)據(jù)盤是第二塊 SSD重裝后lsblk能看到但blkid無輸出。原因分區(qū)表類型不被識別比如 GPT 分區(qū)表損壞或者 SSD 被做了 RAID 成員盤。 解決用parted /dev/sdb print查看分區(qū)表如果提示unrecognised disk label說明分區(qū)表丟了用testdisk恢復(fù)如果是 RAID 成員先在 BIOS 或mdadm里確認(rèn)陣列狀態(tài)。提示以上五條里現(xiàn)象一和現(xiàn)象三造成的損失最大。前者丟數(shù)據(jù)后者進(jìn)不去系統(tǒng)。把 2.1 的信息抄下來、把 2.2 的備份做掉、把 4.1 的mount -a跑一遍這三步能擋掉八成翻車。6. 把重裝流程固化成可復(fù)用腳本與檢查清單每次重裝都手動(dòng)敲命令容易漏步驟我后來把關(guān)鍵動(dòng)作寫成一個(gè)檢查腳本裝完系統(tǒng)跑一遍確認(rèn)數(shù)據(jù)盤狀態(tài)。腳本不復(fù)雜但能省掉反復(fù)lsblk的功夫。#!/bin/bash # check_data_disk.sh - 重裝后數(shù)據(jù)盤狀態(tài)檢查 # 用法sudo bash check_data_disk.sh /dev/sdb1 /data DISK$1 MOUNT_POINT$2 echo 1. 分區(qū)是否存在 lsblk -f $DISK || { echo 分區(qū) $DISK 不存在; exit 1; } echo 2. 文件系統(tǒng)類型 FSTYPE$(blkid -s TYPE -o value $DISK) echo 類型: $FSTYPE echo 3. 是否已掛載 if mountpoint -q $MOUNT_POINT; then echo $MOUNT_POINT 已掛載 df -h $MOUNT_POINT else echo $MOUNT_POINT 未掛載嘗試掛載 mount $DISK $MOUNT_POINT echo 掛載成功 || echo 掛載失敗檢查 fstab 或文件系統(tǒng) fi echo 4. fstab 中的記錄 grep $MOUNT_POINT /etc/fstab || echo fstab 中無 $MOUNT_POINT 記錄腳本邏輯先確認(rèn)分區(qū)存在再讀文件系統(tǒng)類型然后判斷掛載點(diǎn)是否已掛載沒掛就嘗試掛載最后檢查 fstab 有沒有對應(yīng)記錄。參數(shù)$1是數(shù)據(jù)盤分區(qū)設(shè)備名$2是掛載點(diǎn)。跑之前用chmod x加執(zhí)行權(quán)限。這個(gè)腳本不能替代備份但能在裝完系統(tǒng)后快速判斷數(shù)據(jù)盤是否處于預(yù)期狀態(tài)。除了腳本我習(xí)慣在重裝前把下面這張清單過一遍每項(xiàng)打勾再動(dòng)手檢查項(xiàng)命令或動(dòng)作確認(rèn)系統(tǒng)盤設(shè)備名lsblk看/所在盤數(shù)據(jù)盤設(shè)備名與 UUIDblkid抄下來數(shù)據(jù)盤文件系統(tǒng)類型ext4 / xfs / crypto_LUKS數(shù)據(jù)盤原掛載點(diǎn)mount或findmnt關(guān)鍵數(shù)據(jù)已備份rsync到外置盤安裝器摘要已核對只有系統(tǒng)盤被格式化裝完mount -a無報(bào)錯(cuò)fstab 驗(yàn)證屬主與權(quán)限已修復(fù)chown/restorecon這張清單我用了兩年多中間換過 SSD、換過文件系統(tǒng)流程沒變過。銀河麒麟 V10 SP1 的安裝器版本更新過幾次分區(qū)界面措辭有調(diào)整但“只格式化系統(tǒng)盤、數(shù)據(jù)盤取消格式化、用 UUID 回掛”這三條一直有效。真正會讓人翻車的從來不是命令記不住而是分區(qū)界面那幾秒沒核對清楚。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取