简述

目标:移除Windows 7,整块硬盘完全分配给Archlinux。

原分区结构:

分区类型挂载文件系统容量
/dev/sda1主分区,启动分区Windows 7的安装分区ntfs30G
/dev/sda2扩展分区---
/dev/sda5逻辑分区Windows的D盘ntfs40G
/dev/sda3主分区/ext378G
/dev/sda4交换分区swap-2G

调整后分区结构:

分区类型挂载文件系统容量
/dev/sda1主分区,启动分区/ext330G
/dev/sda2主分区/homeext3120G
/dev/sda3交换分区swap-2G

步骤

  1. Archlinux中重装GRUB,覆盖Windows 7的BCD:
    1
    sudo grub-install /dev/sda
  2. 在GRUB启动菜单中加入将要复制到sda1分区中的Archlinux的启动项:
    1
    sudo vi /boot/grub/menu.lst

    # (2) Arch Linux title Arch Linux root (hd0,0) kernel /boot/vmlinuz26 root=/dev/sda1 resume=/dev/sda4 ro acpi_osi="Linux" initrd /boot/kernel26.img
  3. 安装U盘启动的Puppy Linux
  4. Puppy中格式化sda1分区:
    1
    mkfs.ext3 /dev/sda1
  5. 复制sda3上的Archlinux所有的文件到sda1:
    1
    2
    3
    4
    # 先点击桌面上sda1和sda3的盘符,使之被挂载到/mnt下

    cd /mnt/sda3
    cp -a * /mnt/sda1
  6. 修改sda1上的fstab:
    1
    vi /mnt/sda1/etc/fstab

    # 修改必要的挂载点,如将根目录的挂载点由sda3改为sda1: /dev/sda1 / ext3 defaults,noatime 0 1
  7. 重启系统,并引导到新分区上的系统中
  8. 重新安装GRUB,使之引导sda1分区中的系统:
    1
    sudo grub-install /dev/sda
  9. 重启并进入Puppy,使用gparted删除除sda1以外的所有分区,然后在空闲的空间上创建ext3格式的主分区sda2和交换分区sda3
  10. 移动sda1上home目录下的所有东西到sda2:
    1
    2
    cp -a /mnt/sda1/home/* /mnt/sda2
    rm -rf /mnt/sda1/home/*
  11. 修改sda1上的fstab和menu.lst:
    1
    vi /mnt/sda1/etc/fstab
    # 将fstab中磁盘分区的挂载点配置为如下内容 /dev/sda1 / ext3 defaults,noatime 0 1 /dev/sda2 /home ext3 defaults,noatime 1 2 /dev/sda3 swap swap defaults 0 0
    1
    vi /mnt/boot/grub/menu.lst
    # 将原来启动项中的sda3修改为sda1,由于配置过休眠,也将resume参数中的sda4改为sda3,即交换分区
  12. 重启系统

后记

Arch诞生时只装XP,到装上Archlinux后双系统并存,再到尝试Win7,两年的时间里,一直有很多原因让Windows像只寄生虫一样顽强地活著。最近硬盘空间越来越紧张,早前装的Win7也很长时间不用了,于是时隔三年之后,我又成了个纯粹的Archer。