升级旧电脑并迁移 Deepin Linux

这篇日记小结了一下我升级一台2008年的旧电脑并迁移 Deepin 20.01 Linux 的过程,主要涉及把CPU微码刷入主板BIOS,添加一块硬盘组成软陈列+LVM卷提高磁盘速度和分区管理灵活性,添加内存,为老 nvidia 显卡安装 3D 驱动,安装 Vmplayer 虚拟机,及升级后的效果和仍存在的局限。

升级前电脑配置:2008年配置的电脑,ASUS P5QL PRO 主板,Intel LGA 775 封装 E7400 2.8G 双核 CPU,NVIDIA GeForce 9600 GT 显卡,金邦 DDRII 800 4G内存,西数 WD5000AAKX SATA3 500G 硬盘,主板只有 SATA2 接口。Deepin 20.1 Linux 和 Windows XP 双系统,主要使用 Deepin,启动程序有些卡顿,尤其是 Wine 版本程序,有时一次还打不开。显卡为 nouveau 开源驱动。

升级后的变化的配置:在淘宝购买的硬改 Intel LGA 771 封装的 Xeon E5450 3.0G 4核 CPU 和增加了两根 2G 的同型号内存,共花费 110 元。硬盘是加了块轻微坏道的西捷 ST3250310AS SATA2 250G 硬盘,已分区屏蔽坏的部分,不要钱。显卡改为 nvidia 有3D加速的闭源驱动。保留原500G数据分区不动。其余部分做成 raid0 软阵列,软阵列上建 LVM 卷。Deepin 安装在 LVM 卷上,在 Vmplayer 虚拟机里安装一个 Windows XP 备用。

效果:系统运行有明显改善。新CPU因有VT-x 特性使虚拟机运行更快;增加的内存也使得对运行虚拟机和 Wine 版本程序更轻松;两块硬盘做的 raid0 使数据并行读写,让 io 性能提高,简单测试在运行的系统中,根分区的 hdparm -t 测试可以达到170 MB/sec左右,与 sata3 接口的机械单硬盘数据相当,注意,此块主板是 sata2 接口;硬盘 raid0 上构建的 LVM 使系统分区调整更方便,并可方便的创建和恢复 LV 分区镜像;安装 nvidia 私有驱动后,vmplayer 的虚拟机可以使用3D虚拟显卡。

仍存在的局限:升级的 CPU 仍然缺少 EPT 特性,使必须此特性的 Vmplayer 14、15、16 不能使用,能使用最新的版本只能到 Vmplayer 12.5.9;CPU 缺少 SSE4.2 指令集,使必需此的 Android 模拟器 Anbox、xDroid 不能使用。如果继续升级就应该是必须换主板,还不如直接换电脑了。

升级要点:
1、把 CPU 的微码刷入主板 BIOS。
在淘宝上买的硬改 Xeon E5450 插在 ASUS P5QL PRO 主板上,开机总提示必须升级BIOS,但已是最新的BIOS,最后刷了CPU微码解除提示。基本步骤是:根据CPUID 找出需要删除和添加的微码文件,用软件更新并保存BIOS,把新BIOS刷进主板即可。
参考链接:
LGA 771 Xeon Microcode – How to MOD Your BIOS https://www.delidded.com/lga-771-xeon-microcode/

2、加内存。
内存是跟原来同型号的,1根2G,加上原来的2根,共8G内存。刚加上时没看见显示就不断重启,最后在断电情况下用改锥给主板CMOS放电,再认真拔插一下内存条。也不知道怎么回事,就可以工作了。当时下载了一个 MemTest86 ISO ( https://www.memtest86.com/downloads/memtest86-4.3.7-iso.zip )放在 Ventoy 启动 U 盘里 ( https://www.ventoy.net/cn/index.html ),完整的测试了一遍内存没有问题。已经正常使用了几天也没有问题。(更新:后来证实,不断重启是电源的问题,换了电源就没事了。2021.04.17)

3、加硬盘组建 raid0 + LVM 结构
插上硬盘后,用 Debian 10 LIVE USB 进入系统,除开原硬盘的数据分区不动外,其余分区经过调整,与加上去的硬盘的分区形成了3对大小一致的分区对,每对分区建一个 raid0 软阵列,一共建成3个软阵列,再把软阵列作为 PV 加入同一个 LVM 的 VG 中,VG下面划分出两个 LV 分区,分别放根分区和/home分区。根分区要放在前面PV的开头部分,会对IO速度有帮助。

Deepin 系统就是原来安装在原硬盘的那份,用tar打包压缩放在没动的数据分区里。在 LIVE 系统里释放到 LV 根分区中的文件系统,修改一下 /etc/fstab。再重启进入 grub rescue 界面,设定根分区的LV,进入系统后执行 update-grub 更新 grub 菜单,再执行 grub-install /dev/sda 和 grub-install /dev/sdb 把引导安装进两个硬盘的MBR中就行。

另外,在LVM的操作中,查看 pv 含的 lvm 信息:pvdisplay /dev/md0 加 pvs /dev/md0 --segments -o +lv_name,lv_size
查看 lvm 含的 pv 信息: lvs /dev/deepinvg/deepinlv -o seg_pe_ranges
把新增加的 PV 加入 vg: vgextend deepinvg /dev/md3
把一个lv里的PE 移动到在同一个VG里还没有分配了的pv里:pvmove /dev/md0 /dev/md3 ,当然大小要能容纳。

在 Linux LVM 结构里,有时在同一个 vg 的同一个 pv 里面的不同 pe 的磁盘速度也有可能差别较大,比如把 / 根分区的 lv 所在的 pe 移到 pv 的开头系统反应就要灵敏些。同一个 pv 里面移动 lv 的 pe 的命令如: pvmove --alloc anywhere /dev/md0:1600-1663 /dev/md0:4800-4863 会移动64个 pe 到新的地方,1个pe这里是16M,就是移动了1024M。另外,如果在同一个 vg 里面, lv 的 pe 可以用 pv 命令移动到同属一个 vg 并还没有分配给任何 lv 的任意 pe 里,这就为 lv 在不同物理设备和同一物理设备的不同区块里的移动提供了方便。

LVM 还有一个方便的地方就是在对某一 lv 分区内容作比较危险的操作前,可以使用如: lvcreate -s -L 10G -n deepinlvsnap1 /dev/deepinvg/deepinlv 建立分区的快照,到时可以使用 lvconvert --merge /dev/deepinvg/deepinlvsnap1 恢复分区内容到建立快照时的状态,同时此快照也会消失。

另外,raid0 虽然可以加快磁盘速度,但因数据是对称存入两块硬盘,一块硬盘坏了数据就没了。况且有一块还是有坏道淘汰的。所以我把重要的数据都保存到原来 500G 硬盘的没动的没有加入阵列的那个NTFS数据分区里。并且另有一块脱机的USB移动硬盘用于备份数据。硬盘管不了几个钱,数据重要。开始调整硬盘前,我也把数据分区的文件作了完整备份。

参考链接:
raid 与 LVM 操作: http://linux.vbird.org/linux_basic/0420quota.php
How to find the physical volume(s) that hold a logical volume in LVM: https://serverfault.com/questions/461385/how-to-find-the-physical-volumes-that-hold-a-logical-volume-in-lvm
man pv

4、显卡安装私有驱动
NVIDIA GeForce 9600 GT 显卡在官网的Linux驱动是2015年的,针对的也是当时的发行版,在现在的发行版上是安装不了的。我都以为这款显卡只有用没有3D加速功能的开源驱动 nouveau 了。最后上网查了一下,在软件仓库的 non-free 里就有适合这款显卡的驱动 nvidia-legacy-340xx-driver 可以直接安装。执行:sudo apt install nvidia-legacy-340xx-driver 就行。
参考链接:
软件包:nvidia-legacy-340xx-driver: https://packages.debian.org/buster/nvidia-legacy-340xx-driver

5、安装 vmplayer 虚拟机
因 CPU 缺乏 EPT 特性,最高只能安装 Vmplayer 12.5.9。但此版本在 Deepin 20.1 不能运行,报告:/usr/lib/vmware/bin/vmware-modconfig: Relink '/lib/x86_64-linux-gnu/libbsd.so.0' with'/lib/x86_64-linux-gnu/librt.so.1' for IFUNC symbol `clock_gettime'。解决方法是重新编译相关模块及调整动态链接库文件。参考链接: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1715552/comments/26

6、感想
只要有一颗折腾的心,废物利用也是一种乐趣。

One thought on “升级旧电脑并迁移 Deepin Linux”

发表评论

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