Linux无盘工作站构架的一点小经验
作者:记忆簿 | 来源:互联网 | 2017-06-18 13:46
文章标题:Linux无盘工作站构架的一点小经验。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类
其实无盘的linux并没有十分困难,只是做的人不多而已。
这里我就介绍一下我的实现方法:
实现系统(RedHat 8.0+DHCPD+TFTP)
SYSLINUX =http://freshmeat.net/redir/syslinux/10177/url_tgz/syslinux-2.09.tar.gz
其实这与系统没有多大关系
安装服务器,这个服务器必须支持dhcpd(或PXE),tftpd,nfs这几个服务,这里要说的是必须要结合syslinux一齐用。
下载syslinux 编译后把pxelinux.0 拷贝到/tftpboot/, pxelinux.0 为启动文件.取得无盘工作站的网卡(MAC)
在dhcpd.conf中指定IP地址;
dhcpd文件例子:
####################################
deny unknown-clients;
option subnet-mask 255.0.0.0;
option broadcast-address 130.255.255.255;
option domain-name "";
option routers 129.0.0.254;
ddns-update-style none;
subnet 129.0.0.0 netmask 255.0.0.0 {
group {
host node1{
hardware ethernet 00:30:48:29:cb:96;
fixed-address 129.0.0.1;
filename "pxelinux.0";
option routers 129.0.0.254;
option domain-name "YY";
}
}
}
#######################################
在新建一个pxelinux.cfg目录,启动时服务器会在此目录找相应的无盘工作站的配置,文件的名称规则为IP地址的16进制的输出比如10:10:10:10 文件名为0a0a0a0a 若找不到系统会一步一步找0a0a0a00 -> 0a0a0000 -> 0a000000 -> default 在找不到那就无法启动了.
此文件的格式:
########################
DEFAULT linux
PROMPT 0
LABEL linux
KERNEL vmlinuz
append ip=dhcp root=/dev/nd01 nfsroot=129.0.0.254:/tftpboot/node vga=normal
##########################
可以自己改变.此文件指定了 服务器为129.0.0.254 无盘工作站的文件系统在/tftpboot/node下下面是我写的建无盘站文件系统的shell程序
#############################
#!/bin/sh
mkdir=`which mkdir`
cp=`which cp`
mknod=`which mknod`
chmod=`which chmod`
rm=`which rm`
chattr=`which chattr`
mkdir /tftpboot/$1
cd /tftpboot/$1
echo -n "Copy directory bin ..."
cp -a /bin .
echo " OK"
echo -n "Copy directory dev ..."
cp -a /dev .
echo " OK"
echo -n "Make a node nd0 ..."
mknod dev/nd0 b 43 0
chmod 600 dev/nd0
echo " OK"
echo -n "Copy directory etc ..."
cp -a /etc .
echo " OK"
echo -n "create directory home ..."
mkdir home
echo " OK"
echo -n "Copy directory lib ..."
cp -a /lib .
echo " OK"
echo -n "clean modules of directory lib ..."
rm -rf lib/modules
echo " OK"
echo -n "create directory root ..."
mkdir root
echo " OK"
echo -n "copy directory sbin ..."
cp -a /sbin .
echo " OK"
#echo -n "link directory usr ..."
#ln -s /usr usr
#echo "OK"
echo -n "create directory var ..."
mkdir var
cd var
echo "Entering directory var "
echo -n "copy lib"
cp -a /var/lib .
echo -n " cache"
cp -a /var/cache .
echo -n " log"
cp -a /var/log .
echo -n " tmp"
cp -a /var/tmp .
echo -n " spool"
cp -a /var/spool .
echo -n " yp"
cp -a /var/yp .
cd ../
echo -n "leaving directory var"
echo " OK"
echo -n "create directory proc usr tmp ..."
mkdir proc usr tmp
echo " OK"
echo -n "change attribute of tmp ..."
chmod 777 tmp
echo " OK"
echo -n "create file fastboot and add +i attribute ... "
touch fastboot
chattr +i fastboot
echo " OK"
#######################
## change fstab ##########
编辑/tftpboot/node/etc/fstab
添加 nodeserver:/tftpboot/node / nfs rw 0 0
修改/etc/exports
添加/tftpboot/node node1(rw,async,no_root_squash)
启动nfs
再要修改的话,可以根据自己的需要删添.
这样服务系统算是搞定了, 接下去就要编译无盘工作站内核了
下载一个内核源文件,或者就去安装盘中找一个就可以了,安装后,进入/usr/src/SPRMS/中,看到内核的源程序,make menuconfig ,此时你可以考虑无盘工作站的需要,减少一些硬件的支持,但是你必须要选上nfsroot.
我找到了其他的安装方法,都不建议使用加载modules,但是你要加载了,好像也没有什么问题,而且可以增加许多功能.不过对资源占用很多,这要看你的观点了. 接下去就把编译好的内核文件 bzImage 拷贝到/tftpboot/下 改为vmlinuz或者你可以在/tftpboot/pxelinux.cfg/xxxxxxxx 中修改 kernel + 内核文件的名字.
这样,一个无盘工作站的系统基本没有问题了,无盘站选择网络启动,
推荐阅读
-
本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ...
[详细]
蜡笔小新 2023-12-14 18:16:27
-
本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ...
[详细]
蜡笔小新 2023-12-14 17:57:01
-
-
本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ...
[详细]
蜡笔小新 2023-12-14 17:13:20
-
本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ...
[详细]
蜡笔小新 2023-12-14 14:01:06
-
本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ...
[详细]
蜡笔小新 2023-12-14 13:59:45
-
本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ...
[详细]
蜡笔小新 2023-12-14 17:55:18
-
本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ...
[详细]
蜡笔小新 2023-12-14 17:15:19
-
本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ...
[详细]
蜡笔小新 2023-12-14 17:03:58
-
这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ...
[详细]
蜡笔小新 2023-12-14 16:19:10
-
本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ...
[详细]
蜡笔小新 2023-12-14 16:12:01
-
本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ...
[详细]
蜡笔小新 2023-12-14 15:30:33
-
本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ...
[详细]
蜡笔小新 2023-12-14 14:06:10
-
本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ...
[详细]
蜡笔小新 2023-12-14 13:56:20
-
本文介绍了如何找到并终止在8080端口上运行的进程的方法,通过使用终端命令lsof -i :8080可以获取在该端口上运行的所有进程的输出,并使用kill命令终止指定进程的运行。 ...
[详细]
蜡笔小新 2023-12-14 13:45:13
-
VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ...
[详细]
蜡笔小新 2023-12-14 12:55:15
-