Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux/Windows 共存機器移除 Windows 分區並擴展 Linux 空間完整實戰

編輯:Linux 教學

場景與兩大策略對比

安裝 Linux 兩個月後決定徹底移除 Windows,回收空間給 Linux。兩條路徑:

策略優點缺點
重新安裝 Linux分區規劃最靈活、系統最乾淨需完整備份/還原,耗時極長
原地移除 Windows + 重新分區保留現有系統配置、僅增加空間操作較複雜、風險稍高、文獻較少

本文採策略二,輔以關鍵資料備份至軟碟(或 USB)降低風險。

前置作業:資訊蒐集與備份

  • 完整備份 /etc/fstab、/etc/lilo.conf、個人文件、配置文件
  • 閱讀 man fdisk、man mke2fs、man lilo、LILO 文檔(/usr/doc/lilo-*/doc/User_Guide.ps)、Hard Disk Upgrade Mini How-To
  • 以 root 直接登入操作(非 su),vi 存檔用 :w! 強制寫入

實戰環境:原始分區佈局

Disk /dev/hda: 128 heads, 63 sectors, 788 cylinders
Device    Boot Start End   Blocks      Id System
/dev/hda1 *     1   397   1600672+    c  Win98 (FAT32, fdisk 顯示 Unknown)
/dev/hda2       398 601   822528      83 Linux /
/dev/hda3       602 627   104832      82 Linux swap
/dev/hda4       628 788   649152      83 Linux /home

df 確認 /dev/hda1 掛載於 /mnt/dos 可讀寫。

關鍵配置文件原貌

# /etc/fstab
/dev/hda2 / ext2 defaults 1 1
/dev/hda4 /home ext2 defaults 1 2
/dev/hda3 swap swap defaults 0 0
/dev/hda1 /mnt/dos msdos user,noauto 0 0

# /etc/lilo.conf
boot=/dev/hda
image=/boot/vmlinuz-2.0.34-1 label=linux root=/dev/hda2 read-only
other=/dev/hda1 label=dos table=/dev/hda

步驟一:將 hda1 由 FAT32 轉為 Linux 原生分區

  1. umount /mnt/dos 卸載分區
  2. fdisk /dev/hda → t (修改類型) → 分區 1 → 83 (Linux) → w 寫入
  3. 忽略 ioctl() re-read failed: Device busy 警告,暫不重啟
  4. mke2fs /dev/hda1 格式化(可加 -c 檢查壞軌),Windows 徹底消失

步驟二:規劃新空間分配

目標:hda1 (1.5GB) → 600MB /home + 800MB / + 100MB swap

# 掛載新分區準備遷移
mkdir /mnt/tmp
mount -t ext2 /dev/hda1 /mnt/tmp

# 完整複製根分區(-x 不跨檔案系統,保留結構)
cp -ax / /mnt/tmp/

# 補齊被 -x 排除的掛載點目錄
mkdir /mnt/tmp/home
mkdir /mnt/tmp/proc

步驟三:修改新系統配置文件

/mnt/tmp/etc/fstab(新根分區視角)


/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /mnt/tmp ext2 defaults 1 2   # 舊根暫作掛載點
/dev/hda4 /home ext2 defaults 1 3
/dev/hda3 swap swap defaults 0 0
none /proc proc defaults 0 0

/mnt/tmp/etc/lilo.conf(新核心位置)


boot=/dev/hda
image=/boot/vmlinuz-2.0.34-1 label=linux root=/dev/hda1 read-only

步驟四:重裝 LILO 並首次重啟


/sbin/lilo -v -C /mnt/tmp/etc/lilo.conf
# 輸出確認:Added linux * /boot/boot.0300 exists

重啟進入新根分區(hda1)。

步驟五:遷移 /usr/local 並最終調整

  1. 登入新系統,刪除 /mnt/tmp (舊 hda2) 所有內容:cd /mnt/tmp; rm -rf *
  2. 將 /usr/local 內容移回 /mnt/tmp:cp -a /usr/local/* /mnt/tmp/
  3. 清空 /usr/local:rm -rf /usr/local/*(保留目錄)
  4. 修改 /etc/fstab 最终版:
    
    /dev/hda1 / ext2 defaults 1 1
    /dev/hda2 /usr/local ext2 defaults 1 2
    /dev/hda4 /home ext2 defaults 1 3
    /dev/hda3 swap swap defaults 0 0
    
  5. 再次重啟驗證 df、fdisk -l 符合預期

遇坑與教訓

  • 首次重啟 /home、/proc 未掛載:因 cp -ax 排除導致缺少掛載點目錄,補建即可
  • 建議重啟至單用戶模式操作,降低併發風險
  • 預先製作開機軟碟/USB 以備不時之需

成果

原 1.5GB Windows 空間成功轉化為:/ (800MB) + /usr/local (796MB) + /home (628MB),所有服務正常運行,系統配置完整保留。

Copyright © Windows教程網 All Rights Reserved