linuxcoming 发布的文章

物理服务器上安装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的驱动,以及更换硬盘都不能解决该问题。

- 阅读剩余部分 -

大多数情况下,笔记本都有两块网卡,一块无线网卡,一块有线网卡。
有些时候,我们需要将windows的网络共享给其他设备,比如将有线网络共享给无线网卡,以便其他移动设备(手机/路由器/HUB/笔记本/Pad),或者将当前连接的内部无线网络共享给有线设备。

- 阅读剩余部分 -

在某些情况下,可能需要解压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,但是在启动服务前,需要加载根盘,读取根盘内的相关内容(从上述截图看,是加载根盘过程中,没有找到对应的根盘分区, 这地方出问题了)

- 阅读剩余部分 -

准确的计时已成为现代软件部署的关键组成部分。无论是确保以正确的顺序记录日志还是正确应用数据库更新,不同步的时间都可能导致错误,数据损坏和其他难以调试的问题。

最新基于systemd的发行版本都有内置的时间同步功能,由systemd-timesyncd服务接管。下面是一些相关的操作,帮助我们快速解决时间同步问题。

设置时区(timezone)

通过date命令我们可以快速查看服务器的时间信息,这里现实的是UTC(Coordinated Universal Time)时间,当您的基础架构跨越多个时区时,一致地使用UTC时间可以减少系统交互之间的混乱。

date

Tue Sep  4 17:51:49 UTC 2018

- 阅读剩余部分 -

经常编写markdown需要引入一些代码块,需要定义Markdown支持的语言列表,这里列一下,需要的时候方便查找

NameMarkdown Label
.NET Consoledotnetcli
ASP.NET (C#)aspx-csharp
ASP.NET (VB)aspx-vb
AzCopyazcopy
Azure CLIazurecli
Azure PowerShellazurepowershell
C++cpp
C++/CXcppcx
C++/WinRTcppwinrt
C#csharp
C# in browsercsharp-interactive
Consoleconsole
CSHTMLcshtml
DAXdax
Dockerdockerfile
F#fsharp
Gogo
HTMLhtml
HTTPhttp
Javajava
JavaScriptjavascript
JSONjson
Kusto Query Languagekusto
Markdownmd
Objective-Cobjc
ODataodata
PHPphp
PowerApps (dot decimal separator)powerapps-dot
PowerApps (comma decimal separator)powerapps-comma
PowerShellpowershell
Pythonpython
Q#qsharp
Rr
Rubyruby
SQLsql
Swiftswift
TypeScripttypescript
VBvb
XAMLxaml
XMLxml

- 阅读剩余部分 -