Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >NUC 折腾笔记 - Linux 系统篇

NUC 折腾笔记 - Linux 系统篇

原创
作者头像
soulteary
修改于 2021-02-01 03:16:18
修改于 2021-02-01 03:16:18
2.5K1
举报

NUC 折腾笔记 - Linux 系统篇

写一篇迟到的折腾笔记:NUC8 8i5beh 。原本计划折腾 Hackintosh ,最后折腾了一台 Linux Homelab 设备。

本篇记录 NUC 基础系统配置中的一些细节。

写在前面

2021 年的第一个月,因为众所周知的原因,NUC 11 的到货迟到成为了现实,10 代产品的本地货源在两周前也比较捉急,好在口碑爆表的 8 代 NUC 的货源还是非常充足的,性价比也同样占优。

加上正巧最近在折腾 MacOS 客户端,心说如果 NUC 8 代产品靠谱的话,相比较笔记本来说无屏幕、功耗更低来说持续跑一些程序的话,优势还是不小的。(便宜大碗、坏了不心疼呀)

装配完毕的 NUC
装配完毕的 NUC

于是在网上找了一家“出售成套方案、到手即用”的店铺,入手了一台经典神机 NUC8(8i5beh),在 NUC 到手后通电后,产生了三个想法:

  1. NUC 8 性能真不错,系统运行顺滑,但是在运行 Mac OS 时,风扇瞬间起飞(比MacBook 编译程序还要暴躁),散热是真的有压力,还好没有入手 NUC8 i7 版本以及 NUC 10 跑这个场景。
  2. NUC 11 应该值得等待,制程优化带来的散热问题应该有好转(已在 M1 Mac 上验证),加上性能也有质变,希望年后物流速度尽快恢复吧。
  3. 虽然网上资料更多的是用 NUC 8 做 Hackintosh,但或许 Linux 或许更适合它,对核显需求更低、发热更低,加上本身不错的计算能力和扩展能力。

为了验证第三个想法,开始了折腾之旅。

Ubuntu 20.04 安装

考虑偶尔可以使用 HDMI 接显示器使用,并且想更省事的使用“官方默认”的 VNC 功能,所以这次的安装采用 Desktop 版本。

如果你不需要 VNC 和 Wi-Fi 功能,完全可以使用 Server 版镜像,毕竟复杂性更低,相对可靠性更高嘛。

启动盘制作

Mac 下的启动盘制作方案非常多,这里推荐一个“跨端”方案:balenaEtcher,一款高颜值的引导盘刷写工具,命令行过程中索然无味的等待将被配色清新的界面所取代。

balenaEtcher 使用界面
balenaEtcher 使用界面

使用方法很简单,只需要下载好镜像,然后戳戳戳,一路下一步就可以了。

进入U盘引导

NUC 默认启动速度很快,想要使用 U 盘引导安装系统,需要在启动过程中“疯狂”按 F10 ,进入启动菜单选择。

提升系统安装速度

在使用启动盘安装的过程中推荐断开网络(别插网线、别连无线),可以解决默认软件源下载更新缓慢的问题,从而大幅提升安装速度。

选择系统安装类型

安装模式选择正常安装(Normal installtion)和最小化安装(Minimal installtion)都可以,两者差别在于默认安装软件包的多寡。如果你希望保留默认的 VNC 工具、桌面的话可以考虑使用正常安装偷个懒。

如果你的 NUC 使用的是非 Intel 网卡,在安装的时候选择安装三方驱动(Install third-party software for graphics and Wi-Fi hardware...)可以在第一次正式系统的时候正常使用 Wi-Fi 网卡。

但是需要注意,不要着急更新系统,会出现网卡无法工作的情况。

拔掉引导盘

如果你习惯了服务器版在安装完毕后提示你“拔掉U盘”,那么在安装桌面版的时候要注意一下,桌面版并不会提示你安装完毕,请弹出可移动设备。

安装完毕需要自行拔掉 U 盘,避免循环启动安装镜像。

重复安装无法启动系统

如果你选择重复安装 Ubuntu,那么可能会因为 UEFI “残留数据” 导致需要进入 Grub 恢复模式重新初始化引导。

这里可能是 grub 在 nvme 设备下处理 EFI 分区有问题,虽然使用下面的命令可以修复卡在启动界面的系统:

代码语言:txt
AI代码解释
复制
grub rescue>set root=hd0,msdos5
grub rescue>set prefix=(hd0,msdos5)/boot/grub
grub rescue>insmod normal
grub rescue>normal

但是在“完整系统”中执行恢复“三招”会发现系统并不能被修复:

代码语言:txt
AI代码解释
复制
update-grub
grub-install /dev/nvme0n1
reboot

这时建议重新初始化硬盘,删除 NVME 磁盘前的引导记录。我这里使用 Mac 磁盘工具对 NUC 磁盘进行了初始化。

系统基础配置

在安装完毕之后,就是进行系统的基础配置了。

更换软件源

进入系统之后,使用默认的 vi 软件编辑软件源列表:

代码语言:txt
AI代码解释
复制
vim /etc/apt/sources.list

cn.archive.ubuntu.comsecurity.ubuntu.com 替换为国内速度更快的清华源:

代码语言:txt
AI代码解释
复制
:0,$ s/cn.archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn\/ubuntu/
:0,$ s/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn\/ubuntu/

然后保存文件,并执行 apt update 获取新的软件列表。但如果你是苹果网卡用户,请先不要更新系统。

配置 SSH 终端连接

还是老方法,安装 openssh-server 软件包即可:

代码语言:txt
AI代码解释
复制
apt install -y openssh-server

如果需要修改链接端口或者其他配置,可以修改 /etc/ssh/sshd_config 中的端口。

这个配置适用于你使用“网线”、“无线”以及“雷电3”组网连接设备。有了 SSH ,接下来的配置会方便非常多,因为你可以复制下面的各种“现成的命令”啦。

Ubuntu 系统 BCM94360CS2 网卡驱动问题

NUC 是“原生”被 Ubuntu 支持的,但是我前文提过,我有购买“整套”的方案,卖家已经帮我处理掉了运行 MacOS 的网卡等硬件问题,将原始的网卡去掉,硬件改造几乎用不到的读卡器线路,换上 BCM94360CS2 。

这样做对于运行 MacOS 的好处是:让 DIY 爱好者头疼的蓝牙和无线功能会一切正常。并且在保证功能正常的前提下,可以以节约一个 M2 接口,来安装我的 Nvme 硬盘。

但是使用 Ubuntu 的话,这个网卡则会带来一个小问题:驱动与内核不兼容、只要升级 Ubuntu 软件包,功能必定 Crash 掉。

修复 BCM94360CS2 网卡驱动问题

如果你在安装过程中没有勾选“三方驱动”选项,那么在安装完毕之后,我们默认是不会有网卡无线驱动的,需要自行安装。网上给出的方案是手动执行(也是 Ubuntu 镜像中的默认三方驱动包):

代码语言:txt
AI代码解释
复制
apt-get install bcmwl-kernel-source

在不更新系统内核的情况下,你会发现网卡顺利的工作了,你可以使用网卡搜索到身边的信号,并且进行链接,但是一旦你执行系统升级命令,在过程中你将会看到类似这样的报错信息:

代码语言:txt
AI代码解释
复制
Building module:
cleaning build area...
make -j8 KERNELRELEASE=5.8.0-40-generic -C /lib/modules/5.8.0-40-generic/build M=/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build...(bad exit status: 2)
ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/bcmwl-kernel-source.0.crash'
Error! Bad return status for module build on kernel: 5.8.0-40-generic (x86_64)
Consult /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/make.log for more information.
   ...done.
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-5.8.0-40-generic

倘若你勾选了“安装三方驱动”,那么得到的也仅仅是在首次系统安装完毕之后,无线能够使用而已,一旦你执行了系统升级命令,还是会得到和上面一样的错误信息。

这个问题在 launchpad 社区有人已经报过:

解决方案是彻底卸载掉“默认驱动包”,重新安装适合的软件包:

代码语言:txt
AI代码解释
复制
apt purge bcmwl-kernel-source
apt-get install broadcom-sta-source
apt-get install broadcom-sta-dkms
apt-get install broadcom-sta-common

执行完毕上述命令后,重新启动,系统便会一切正常。

系统进阶配置

NUC 默认支持使用两个盘位,建议使用 NVME 做为系统盘,我这里使用了新版国货之光:致钛PC005;而另外一个盘位支持的是 SATA 协议,我使用了另外一款口碑很棒的硬盘致钛 SC001。

配置数据盘

NUC 的数据盘
NUC 的数据盘

使用 fdisk 查看当前磁盘列表:

代码语言:txt
AI代码解释
复制
fdisk -l

Disk /dev/nvme0n1: 953.89 GiB, 1024209543168 bytes, 2000409264 sectors
Disk model: ZHITAI PC005 Active 1TB                 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 9D048B5E-4CXX-41XX-A8XX-0F9AXXXXXXXX

Device           Start        End    Sectors   Size Type
/dev/nvme0n1p1    2048    1050623    1048576   512M EFI System
/dev/nvme0n1p2 1050624 2000408575 1999357952 953.4G Linux filesystem


Disk /dev/sda: 953.89 GiB, 1024209543168 bytes, 2000409264 sectors
Disk model: ZHITAI SC001 Act
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

可以看到 /dev/sda 并未初始化,使用 fdisk 的交互模式来进行磁盘初始化。

代码语言:txt
AI代码解释
复制
fdisk -u /dev/vdb

# 交互式输入:p->n->p->enter->enter->enter->w

mkfs.ext4 /dev/sda
echo /dev/sda /data ext4 defaults 0 0 >> /etc/fstab
reboot

重启之后,再次使用 fdisk 查看:

代码语言:txt
AI代码解释
复制
Disk /dev/sda: 953.89 GiB, 1024209543168 bytes, 2000409264 sectors
Disk model: ZHITAI SC001 Act
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

可以看到磁盘已经就绪。

安装容器环境

安装容器的方法还是一如既往的简单,这里给出全部使用镜像来安装的命令:

代码语言:txt
AI代码解释
复制
apt install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common

curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

apt update && apt install -y docker-ce

为了方便使用,这里我写了一个更简单的脚本来进行安装:

代码语言:txt
AI代码解释
复制
curl -o- https://raw.githubusercontent.com/soulteary/linux-scripts/main/docker.sh | bash

安装 compose 也比较简单,我这里也写了一套简单的脚本:

代码语言:txt
AI代码解释
复制
#!/bin/bash

FILENAME="docker-compose-`uname -s`-`uname -m`"
VERSION=1.28.2

if [ -f "$FILENAME" ]; then
    echo "$FILENAME exists.";
else
    curl -L https://github.com/docker/compose/releases/download/${VERSION}/${FILENAME} -o ${FILENAME}
fi

curl -L https://github.com/docker/compose/releases/download/${VERSION}/${FILENAME}.sha256 -o ${FILENAME}.sha256

CHECK=$(shasum -c ${FILENAME}.sha256)

if [ $? != 0 ]; then
    echo "${FILENAME} checksum is not valid";
    exit 1;
fi

mv ${FILENAME} /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
rm ${FILENAME}.sha256
echo "done";
docker-compose -v

同样,有更简单的安装方式:

代码语言:txt
AI代码解释
复制
curl -o- https://raw.githubusercontent.com/soulteary/linux-scripts/main/docker-compose.sh | bash

安装常用软件

为了方便管理和监控系统运行状态,可以安装一些常用运维软件。

代码语言:txt
AI代码解释
复制
apt install net-tools htop iftop iotop -y

最后

下一篇内容,我们聊聊雷电接口加持下的性能小钢炮 NUC8 如何在日常中发挥威力。

--EOF


本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 署名 4.0 国际 (CC BY 4.0)

本文作者: 苏洋

创建时间: 2021年01月31日

统计字数: 6218字

阅读时间: 13分钟阅读

本文链接: https://soulteary.com/2021/01/31/nuc-notes-linux-system.html

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
成功解决问题,感谢分享这么好的帖子
成功解决问题,感谢分享这么好的帖子
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
NUC 折腾笔记 - 储存能力测试
前文提到过,我计划折腾下这种小盒子,作为日常开发过程中的拓展设备。在短暂使用之后,我为它拓展了两块容量更高的硬盘,开始正式使用。
soulteary
2021/02/02
1.1K0
NUC 折腾笔记 - 储存能力测试
廉价的全闪存雷电 NAS 折腾笔记:NUC9 操作系统踩坑
我使用的设备是 NUC9i5QNX,这台设备的硬件基础规格,可以在 Intel ARK 网站中找到。在上一篇文章《廉价的全闪存雷电 NAS 折腾笔记:组网方案的选择》中,我介绍了这台设备的优势,感兴趣可以自行翻阅。
soulteary
2023/09/12
3.3K1
廉价的全闪存雷电 NAS 折腾笔记:NUC9 操作系统踩坑
GRUB多操作系统启动程序介绍与设置使用
描述:GRUB英文全称GRand Unified Bootloader俗称引导程序是硬盘中的软件,它可以启动用户在计算机中的多个操作系统所以也叫多重启动管理器。 目前主流版本是 GRUB2,在windows中也有类似的引导程序ntloader虽然它也可以引导Linux操作系统但是比较麻烦;
全栈工程师修炼指南
2022/09/29
8.6K0
GRUB多操作系统启动程序介绍与设置使用
AMD 4750u 及 5800u 笔记本安装 Ubuntu
在《廉价的家用工作站方案:前篇》一文中,曾提到在 2021 年第三个季度开始,我又购置了一台新的设备,没错,它就是搭载着 Ryzen3 5800u 的笔记本。
soulteary
2021/07/16
2.4K0
AMD 4750u 及 5800u 笔记本安装 Ubuntu
WD MyCloud Gen2 折腾笔记
这款产品有一个比较有意思的地方,使用规格不高的硬件提供了不错的应用服务,但是使用了一些特殊的方法,限制了用户自行改造硬盘容量,网上也有不少网友针对这款产品进行了研究和实践。
soulteary
2020/08/13
5.9K1
WD MyCloud Gen2 折腾笔记
OpenWrt开源软路由项目使用
2020年9月10日 OpenWrt — building 成为最流行的自由和开源 (FOSS) 无线路由器项目已有16年的成功 — 今天加入 软件自由保护组织(SFC) 作为成员项目. FOSS无线路由器可确保所有互联网用户自由使用软件. 软件自由保护组织将帮助 OpenWrt 继续蓬勃发展并成为其新的财政赞助商. OpenWrt 在软件自由的历史上占有特殊的位置. OpenWrt的创建和发布表明 GPL 强制执行 有效并提高了软件自由度. 在2004年, Linksys发布了WRT54G路由器系列的固件代码时, 编码人员和修补匠重新重新控制了自己的路由器, 并且OpenWrt 根据GPL执法机构发布的资源启动了. 今天, OpenWrt 利用受GPL保护的软件自由与使用无线路由器连接到互联网的每个人共享该自由和控制权.
全栈工程师修炼指南
2022/09/29
4K0
OpenWrt开源软路由项目使用
折腾路由--Padavan私有云
经历了网盘的各种关闭、数据迁移和限速,国内基本只有百度网盘一家独大了。然而百度网盘推出会员、进而超级会员一波骚操作后,实在让人累觉不爱。
vincentKo
2022/09/19
18.7K0
折腾路由--Padavan私有云
Centos(Linux)系统下实现挂载硬盘
使用fdisk并且配合目标硬盘的容量1T,我们可以轻松的找到未挂载的硬盘是/dev/sda
技术小黑屋
2020/04/13
7.2K0
Linux磁盘管理和文件系统[通俗易懂]
  磁盘和文件系统的管理是运维人员的重要工作内容之一,本文对磁盘和文件系统的一些概念做了详细解释,管理命令给出了常用示例,方便自己在工作时随时查阅,也欢迎各位一同学习。
全栈程序员站长
2022/09/01
4.9K0
私人订制属于自己的Linux系统
init通过调用/etc/inittab这个配置文件,然后再去执行/etc/rc.d/rc.sysinit的系统初始化脚本
iginkgo18
2020/09/27
1.1K0
私人订制属于自己的Linux系统
实战最精简的 linux -- arch linux 安装
安装操作系统已经越来越成为一件非常简单的事情了,几乎可以做到仅依靠鼠标一路点击,傻瓜式安装了,也许这让你不禁会去想,到底操作系统安装过程中做了哪些事情,亦或是你想要安装一个真正干净的系统,一切组件要什么不要什么都自己说了算,那么,arch linux 可能会是你一个不错的选择。 正是因为 arch 的高度定制与简洁,加上他的滚动升级机制以及庞大的社区 AUR,让他成为了越来越火热的 linux 发行版,本文,我们就来通过安装 arch 讲解一下 linux 的一些基本的命令行配置方法。
用户3147702
2022/06/27
8K0
实战最精简的 linux -- arch linux 安装
搭建iscsi存储系统
SATA:容量大,500G, 750G, 1T, 2T, 3T, 4T 不支持热插拔,价格低。
胡齐
2019/10/03
4K0
树莓派自建 NAS 云盘之——树莓派搭建网络存储盘
我将在接下来的这三篇文章中讲述如何搭建一个简便、实用的 NAS 云盘系统。我在这个中心化的存储系统中存储数据,并且让它每晚都会自动的备份增量数据。本系列文章将利用 NFS 文件系统将磁盘挂载到同一网络下的不同设备上,使用 Nextcloud 来离线访问数据、分享数据。
星哥玩云
2022/07/24
5.8K0
树莓派自建 NAS 云盘之——树莓派搭建网络存储盘
Linux 下的 Fdisk 命令
本文最先发布在:https://www.itcoder.tech/posts/fdisk-command-in-linux/
雪梦科技
2020/05/21
5.1K0
NUC 折腾笔记 - 安装 ESXi7
最近做应用 Demo,比较依赖纯净的虚拟机和容器做验证。两个月前在 NUC8 上安装过 ESXi 7 ,对于提升效率起到了不少帮助。
soulteary
2021/07/02
2.9K1
NUC 折腾笔记 - 安装 ESXi7
分享:Linux中存储设备的表示
摘要: 硬盘和硬盘分区在Linux都表示为设备,按我们通俗的说法来说,就是怎么来表示或描述硬盘和或硬盘分区,但这种描述应该是科学和具体的;比如IDE硬盘,在Linux 可以表示为 /dev/hda、/dev/hdb ... ;SCSI 接口的硬盘、SATA接口的硬盘表示为/dev/sda、/dev/sdb ... ... ;而IDE接口的硬盘/dev/hda,也可以表示为hd0 ,而 SCSI 接口的如果是 /dev/sda ,另一种表示方法是sd0; 理解两种表示方法有何用?至少GRUB引导管理器用到这些知识;另外我们mount (挂载)文件系统(分区),也会用到这些知识;
williamwong
2018/07/24
2.4K0
分享:Linux中存储设备的表示
基于 RK3588 的 ARM 架构 ITX 主机搭建指南:系统选型和配置优化
这篇文档,应该是目前你能够找到的 RK3588 相关,最全面的设备系统选型和配置优化的内容了,希望能够帮到有类似需求的你。
soulteary
2025/04/07
3200
基于 RK3588 的 ARM 架构 ITX 主机搭建指南:系统选型和配置优化
制作属于自己的Linux系统
自制Linux首先得满足一定的条件,除了物理主机的配置外,我们还需要准备一块干净的磁盘。这里,为了更好更直观地体现实验效果,笔者使用VMWare做实验,并准备了1块名为"LinuxDIY"的虚拟磁盘,磁盘大小为10GB。关于VMware的使用及系统安装,可以参看这篇文章。
用户1456517
2019/03/05
3.5K0
制作属于自己的Linux系统
ESXi/vCenter安装部署Gentoo Linux - OpenRC/SystemD
本文采用最小化安装方式,同时会阐述OpenRC和SystemD两种init环境安装区别。所以,镜像采用的是最小化minimal镜像+Stage3(OpenRC/SystemD),整个过程需要有公网访问能力,因此Stage3镜像不用下载到本地,直接在Live系统中wget即可。镜像可在国内清华Gentoo镜像站下载。
RokasYang
2023/01/18
4.9K2
ESXi/vCenter安装部署Gentoo Linux - OpenRC/SystemD
Linux系统磁盘与分区管理
Linux最传统的磁盘文件系统(filesystem)使用的是EXT4格式,所以要了解文件系统就得要由认识EXT4开始,而文件系统是创建在硬盘上面的,因此我们得了解硬盘的物理组成才行,下面我们回来详细谈一谈磁盘,inode,block还有superblock等文件系统,的理论知识.
王 瑞
2022/12/28
6K0
相关推荐
NUC 折腾笔记 - 储存能力测试
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档