分类 kernel 下的文章

到目前为止, 我们已经按技术标准实现了 Debian/Ubuntu 系列 OS 基于 preseeding 技术的自动化装机流程.其实 CentOS 的 PXE 环境构建也一样,基本是把 CentOS-7-x86_64-DVD-1810.iso 标准镜像中 /images/pxeboot 目录下的 vmlinuz/initrd.img 拷贝到 /var/lib/tftp 下. pxelinux.0 引导程序文件不像 Debian\Ubuntu 在版本 iso 镜像中管理, 而是在 syslinux 包中, 当然 syslinux 包一定是在标准镜像中, 需要单独解开这个包或者是在宿主机器上安装该包然后将内容再拷贝出来, 另外还有一些依赖的内容比如 boot.msg 等等文件还需要标准镜像中拷贝出来, 具体依赖项还需要看你 pxelinux.cfg/default 文件中使用了哪些内容.

- 阅读剩余部分 -

物理服务器上安装Linux,很多设备都有非常多的网卡,每个网卡的特性都不一样,批量这种类型的机器的管理有带来很大的麻烦,如何确定哪些网卡负责管理网络,哪些网卡承载业务网络。
我们希望通过通过命名来规范业务。

Linux kernel 从2.6版本的开始支持udev设备管理器,主要的功能是管理/dev目录底下的设备节点。它同时也是用来接替devfs及hotplug的功能,这意味着它要在添加/删除硬件时处理/dev目录以及所有用户空间的行为,包括加载firmware时。

- 阅读剩余部分 -

在服务器上安装完CentOS 系统,启动过程非常慢,一直刷新下面的错误提示

blk_update_request: I/O error, dev sda

根分区是ext4格式,底层是使用MegaRAID构建的Raid1系统盘。出现上面上面的问题,初步怀疑是raid驱动问题或者是磁盘硬件问题,更新不同版本的megaraid_sas的驱动,以及更换硬盘都不能解决该问题。

- 阅读剩余部分 -

在某些情况下,可能需要解压initramfs映像文件以检查内置的文件信息。与以前的版本不同,在RHEL7上,对initramfs映像文件使用cpio命令不会直接解压所有文件, 将会给出一些错误。例如:

# ls -la /boot/initramfs-$(uname -r).img
-rw------- 1 root root 19602671 Feb  4  2016 /boot/initramfs-3.10.0-229.el7.x86_64.img

- 阅读剩余部分 -

systemd是一个全新的init系统和系统管理器,兼容传统的基于SysV init系统的所有主要的Linux发行版。
systemd兼容SysV和LSB init脚本,它作为SysV init系统的直接替代品。
systemd是内核启动并保持PID 1的第一个进程,它是系统运行后的所有进程的的父进程,Fedora 15是第一个支持systemd发行版。

systemctl是用于管理systemd守护程序/服务命令行实用程序和主要工具,例如(start, restart, stop, enable, disable, reload & status)。
systemd使用.service文件而不是bash脚本(SysV init使用)。systemd将所有守护进程排序到他们自己的Linux cgroup中,你可以通过搜索/cgroup/systemd文件来查看系统层次结构。

- 阅读剩余部分 -

计算机发展到如今,变的越来越复杂,集成的设备也越来越多。对于希望进一步了解硬件和OS如何协作运行的IT人员来说,咋一看可能很困难。所以这篇博客详细分解下整个启动过程,再复杂的事物也是由简单的东西组合协作配合工作的,复杂中总会有些简单的内容更有利于我们抓住更本质的东西。

Linux启动过程可以分为多个阶段:

第1步:电源和SMPS

计算机的主要组件之一是SMPS(Switching Mode Power Supply)。该组件的主要目标是为主板和其他计算机组件提供精准电压。

- 阅读剩余部分 -

上一篇博客介绍了CentOS处理启动过程中,没有找到raid驱动导致的启动失败的问题,对于基于Debian的发行版、Gentoo等等系统处理起来是不一样的。因为各自都有对应的initramfs.img的管理工具。

介绍下各个发行版添加kernel module到initramfs的方法

Debian/Ubuntu

将启动过程依赖的raid驱动添加到/etc/initramfs-tools/modules

cat >> /etc/initramfs-tools/modules << EOF
ahci
aacraid
megaraid_sas
mpt3sas
EOF

- 阅读剩余部分 -

在物理机上面安装完物理机碰到下面这个错误:

dracut丢失raid驱动

刚看到这个问题,猜测是因为系统未正确安装,重新安装了一次还是出现同样的问题.开始怀疑不是系统安装问题,整理了下系统启动过程

  • 当系统从固件接口启动(UEFI / BIOS)时,它的工作原理是找到可启动磁盘, 这一步正常
  • 加载bootloader程序(grub/ilo),bootloader程序启动内核和初始化内存镜像(initramfs), 这一步应该也通过了
  • initramfs的内部的工具负责将系统切换到SysVinit/Systemd,但是在启动服务前,需要加载根盘,读取根盘内的相关内容(从上述截图看,是加载根盘过程中,没有找到对应的根盘分区, 这地方出问题了)

- 阅读剩余部分 -

最近开始准备整理一份完整的Linux/FreeBSD的PXE安装教程,先从基础设施VirtualBox安装开始,便于我们模拟在真实场景下远程装机的功能.

1.下载软件

建议直接从官网下载软件,下载软件的同时可以关注下官方一些文档,以及最近的版本情况,甚至你还可以关注下目前版本对PXE的支持情况

(1).Windows下载地址

https://download.virtualbox.org/virtualbox/6.0.4/VirtualBox-6.0.4-128413-Win.exe

安装过程没太多需要注意的,一步一步确认就好了.

VirtualBox安装

(2).Linux下载地址

https://www.virtualbox.org/wiki/Linux_Downloads

- 阅读剩余部分 -