[Share Experiences] 升级旧电脑并迁移 Deepin Linux(转)
Tofloor
poster avatar
littlebat
deepin
2021-04-01 02:51
Author

转自我的博客: (升级旧电脑并迁移 Deepin Linux https://www.learndiary.com/2021/03/upgrade-hardware-and-migrate-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 特性使虚拟机运行更快,VirtualBox 可以使用必需 VT-x 特性的最新的 6.1 版;增加的内存也使得对运行虚拟机和 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、加内存。

内存是跟原来同型号的,2根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 把引导安装进两个硬盘的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 在不同物理设备和同一物理设备的不同区块里的移动提供了方便。

如下图 man pv 的相关示例:

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

如下图是我升级 Deepin 20.1 Linux 到 20.2 之前创建的根分区快照,升级完成后的快照信息:

另外,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、感想

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

Reply Favorite View the author
All Replies
cwbs
deepin
2021-04-01 05:19
#1

涉及lvm就很复杂了,赞

Reply View the author
zxx889
deepin
2021-04-02 05:35
#2

如果有图文并茂就v好了

Reply View the author
littlebat
deepin
2021-04-02 06:19
#3
cwbs

涉及lvm就很复杂了,赞

在虚拟机对着教程多做几次就会了,只不过针对真机操作要特别小心。

Reply View the author
littlebat
deepin
2021-04-02 06:35
#4
zxx889

如果有图文并茂就v好了

谢谢提醒,我更新了下,把有关 LVM 的地方加了几张图。

Reply View the author
sdlinux
deepin
2021-04-04 08:31
#5

那个显卡驱动怎么找到对应的

Reply View the author
littlebat
deepin
2021-04-04 16:51
#6
sdlinux

那个显卡驱动怎么找到对应的

lspci 找出网卡型号,在网上搜索了一下就出来这个包,在详情页面有驱动支持的具体型号: https://packages.debian.org/buster/nvidia-legacy-340xx-driver

Reply View the author
littlebat
deepin
2021-04-04 17:01
#7
sdlinux

那个显卡驱动怎么找到对应的

不过,deepin不知道使用的是debian stable 的版本还是 buster-backports 版本,前者支持5.4及以前内核,后者支持5.10及以前内核。

Reply View the author
sdlinux
deepin
2021-04-04 18:25
#8
littlebat

不过,deepin不知道使用的是debian stable 的版本还是 buster-backports 版本,前者支持5.4及以前内核,后者支持5.10及以前内核。

多谢

Reply View the author
sdlinux
deepin
2021-04-04 18:54
#9

大佬,手动分区,和全盘安装,哪个好

Reply View the author
littlebat
deepin
2021-04-04 20:44
#10
sdlinux

大佬,手动分区,和全盘安装,哪个好

全盘安装的优点:

可以使用Deepin自带的备份与恢复功能;用户数据与系统基本隔离的分区方案;省心。

缺点:固定了结构和格式,如不能使用阵列,LVM,其它格式;大小固定;会清空全盘数据。

没有特殊需要并且条件允许,个人建议全盘安装。

Reply View the author
littlebat
deepin
2021-04-04 21:25
#11
sdlinux

大佬,手动分区,和全盘安装,哪个好

再分享一个全盘安装的缺点吐槽及弥补的案例,他主要是/usr数据量大导致根分区不够用,所以如果全盘安装完成后,建议检查一下各分区大小,不合适可启动 LIVE 系统用 gparted  调整一下或者用下面链接之类的方法处理一下。以免数据量大了调整耗时长且不安全。

【经验分享】 记一次 deepin全盘安装 的大坑及解决方案  https://bbs.deepin.org/phone/zh/post/213238

Reply View the author
sdlinux
deepin
2021-04-05 01:15
#12
littlebat

全盘安装的优点:

可以使用Deepin自带的备份与恢复功能;用户数据与系统基本隔离的分区方案;省心。

缺点:固定了结构和格式,如不能使用阵列,LVM,其它格式;大小固定;会清空全盘数据。

没有特殊需要并且条件允许,个人建议全盘安装。

你说的阵列,lvm都不懂是什么,这个对分区大小有影响吗,譬如我往某一个节点上存储过多的数据,会受到限制吗,备份恢复,我感觉我都用不到,我也不知道如何手动分区,现在好像要efi什么的

 

Reply View the author
sdlinux
deepin
2021-04-05 01:16
#13
littlebat

再分享一个全盘安装的缺点吐槽及弥补的案例,他主要是/usr数据量大导致根分区不够用,所以如果全盘安装完成后,建议检查一下各分区大小,不合适可启动 LIVE 系统用 gparted  调整一下或者用下面链接之类的方法处理一下。以免数据量大了调整耗时长且不安全。

【经验分享】 记一次 deepin全盘安装 的大坑及解决方案  https://bbs.deepin.org/phone/zh/post/213238

那我应该用手动分区,能否告诉我具体告诉我,挂哪几个节点,每个节点格式,大小,

我一共1t硬盘

Reply View the author
littlebat
deepin
2021-04-05 05:54
#14
sdlinux

那我应该用手动分区,能否告诉我具体告诉我,挂哪几个节点,每个节点格式,大小,

我一共1t硬盘

我关闭了安全启动,没有用EFI。我自己就两个分区,根分区一个,/home 一个。还剩点作备用。格式我用ext4。具体怎么分根据自己需要,Deepin 根分区个人建议分30~50G。

阵列和LVM就把它想成特殊的硬盘或分区就是了,不影响分区大小。

Reply View the author
sdlinux
deepin
2021-04-05 06:39
#15
littlebat

我关闭了安全启动,没有用EFI。我自己就两个分区,根分区一个,/home 一个。还剩点作备用。格式我用ext4。具体怎么分根据自己需要,Deepin 根分区个人建议分30~50G。

阵列和LVM就把它想成特殊的硬盘或分区就是了,不影响分区大小。

安装系统到此,放在哪个节点

Reply View the author
littlebat
deepin
2021-04-05 06:57
#16

我的做法里根分区/就是系统分区。/home 分区就是个人数据分区。

Reply View the author
ksdn888
deepin
2021-04-22 05:05
#17

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

能折腾,说明我们还很有活力!我们还很年轻,没有老.....

Reply View the author