使用LiveCD将Archlinux升级到64位系统

买了个4G内存,32位系统无法识别,决定将Archlinux系统升级到64位.官方wiki提供了两种方法:使用LiveCD 和 从正在运行的系统升级,网友普遍反映第二种方法容易悲剧,因此这里使用第一种方法升级

先下载64位Archlinux的LiveCD,懒得刻盘,用从硬盘引导iso: 先把iso镜像放在某个分区根目录,进grub

1
2
3
4
>grub map --heads=0 --sectors-per-track=0 --mem (hd0,0)/archlinux-2012.09.07-dual.iso (0xFF)
>grub map --hook
>grub chainloader (0xff)
>grub boot

 

于是LiveCD就启动了,选择x86_64系统进入,这时会启动失败,进入一个shell,输入

1
2
3
4
5
6
mkdir /win
mount -r -t ntfs /dev/sda1 /win
modprobe loop
losetup /dev/loop6 /win/archlinux-2009.08-core-i686.iso
ln -s /dev/loop6 /dev/archiso
exit

 

即可顺利进入LiveCD系统,进入系统之后首先挂载现有Archlinux分区,以/dev/sda2为例:

1
mount /dev/sda2 /mnt

 

然后自行修改/etc/pacman.d/mirror准备软件源,选择了速度快的源之后,开始给现有分区升级x86_64架构:

1
2
pacman --root /mnt -Sy
pacman --root /mnt  --cachedir /mnt/var/cache/pacman/pkg --noconfirm -Sg base base-devel

 

这个命令可能需要反复执行两次,然后把其它的软件包全部重装:

1
for PKG in $(pacman --root /mnt -Qq); do pacman --root /mnt --cachedir /mnt/var/cache/pacman/pkg --noconfirm -S $PKG ; done

 

这个命令也需要执行两次以上

然后可能要重新安装grub2,之前先删除已有的grub:

1
2
pacman -R grub #删除已有的grub,也有可能是其它名字
pacman -S grub-bios #安装新的grub

 

然后配置新grub:

1
2
arch-chroot /mnt
mkinitcpio -p linux

 

重启完工

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据