如何从NFS启动Linux及原理
1个回答
推荐于2020-03-18
展开全部
首先我们要明确我们所指的程序,是放在有目录级结构的文件系统里,为了寻找到所需要操作系统来运行的程序,我们必须告诉它,文件在哪个文件系统。一 般来说,PC机的文件就存储在硬盘上;对于Live CD而言,文件系统就藏在光盘上面。也就是说,只要操作系统能找到并正确地认识了文件系统,就可以执行里面的程序了!
设置目标机器上的NFS启动
看完了第一节,明白启动的过程了吗? 简单地说,就是内核加载 ,内核找到一个文件系统 ,内 核执行文件系统里的一个程序 。无论是从NFS启动,还是从硬盘启动,都是上述过程。只是NFS启动,其文件系统是放在网络上的。只要我 们告诉内核,具体放在什么地方,在网络的另一端我们设置好共享,自然可以从NFS启动。
让内核识别NFS并可从NFS启动
编译内核
在内核源代码目录树下,配置内核:
$make menuconfig
依次进入 File Systems -> Network File System中选择 NFS client support 以及 Root file system on NFS。如果找不到Root file system on NFS 选项,要打开第一级菜单下的Networking support -> Networking options -> TCP/IP networking -> IP: kernel level autoconfiguration。如果NFS要使用DHCP,还得选上 IP: DHCP support。
保存配置并重新编译即可。
配置内核参数
进入ARM开发板的设置 linux_cmd_line的地方(mini2440则为开机按 s,输入linux_cmd_line,并带着引号输入参数),或者进入PC的GRUB,设置类似参数
root=/dev/nfs rw nfsroot=192.168.1.1:/linux ip=192.168.1.5:::255.255.255.0:linux::off
该配置为静态IP设置。各参数意义如下:
root=/dev/nfs :指定根文件系统为 /dev/nfs,即NFS 。这与/dev这个目录并没有什么关系,在此仅为一个名字。
rw :根文件系统挂载为可读写。还可以有 ro 即只读的选项。
nfsroot=192.168.1.1:/linux :指明挂载哪一个NFS上的哪一个目录。这里指的是挂载IP 为192.168.1.1的电脑上导出的/linux目录。
ip=192.168.1.5:::255.255.255.0:linux::off :设置本机的IP。此举是为了 连接刚才设置的IP。这里是一个静态的配置,配置的格式为 ip=本机的IP地址::网关地址:网络掩码:本机的主机名:网络接口名:off 。一般情况下网关、网络接口名都不需要设置。如果是DHCP获取IP,那很简单,直接 ip=dhcp 即可。
设置NFS服务器
Ubuntu下看链接:http://blog.mcuol.com/User/xiaoxiaopig/article/37324_1.htm
NFS服务器可以是任意操作系统,只要能提供NFS服务即可(WINDOWS可以使用 WSU —— Windows Services for Unix来实现,具体请参考接下来本站要发表的文章)。在这里以Fedora为例,希望别的发行版的用户触类旁通。
对于Fedora来说,有图形界面的工具进行设置,在管理-》服务器设置-》NFS中添加一个共享即可。
更通用的作法,就是修改 /etc/exports文件,之后再启动NFS服务器。
/etc/exports文件格式如下
导出的文件夹 导出的网段(对该导出的网段的选项)
所谓导出的网段就是只向哪个网段导出,保证安全性。一个例子为:
/linux 192.168.1.0/24(rw,sync,no_root_squash)
就是将 /linux 导出到网段为192.168.1.0,子网掩码为255.255.255.0 (即24)的网络。其中可用的选项为(翻译自man文档):
secure和insecure : secure选项下,所有连接的端口均小于1024。默认打开。
rw和ro : Read/Write和Read Only
async和sync async将使用异步数据存取,数据并非马上写入服务器的。sync则相反。使用async需要注意服务器不能随意不正常地关闭,否则可能导致数据丢失。
no_wdelay :不使用延迟写入。NFS服务器会将写入写入请求缓冲起来,可以提高性能。如果async已经打开那么该选项无效。
no_subtree_check :不进行子树检查(使用该选项易引起安全问题)
root_squash和no_root_squash、all_squash :root_squash选项使得客户端以root权限访问 文件系统时,转换为服务器端的匿名用户。这选项打开一定要设置好服务器的权限。
之后再重新启动NFS服务。Fedora下使用 /etc/init.d/nfs restart
使用 exports查看导出的文件。
设置目标机器上的NFS启动
看完了第一节,明白启动的过程了吗? 简单地说,就是内核加载 ,内核找到一个文件系统 ,内 核执行文件系统里的一个程序 。无论是从NFS启动,还是从硬盘启动,都是上述过程。只是NFS启动,其文件系统是放在网络上的。只要我 们告诉内核,具体放在什么地方,在网络的另一端我们设置好共享,自然可以从NFS启动。
让内核识别NFS并可从NFS启动
编译内核
在内核源代码目录树下,配置内核:
$make menuconfig
依次进入 File Systems -> Network File System中选择 NFS client support 以及 Root file system on NFS。如果找不到Root file system on NFS 选项,要打开第一级菜单下的Networking support -> Networking options -> TCP/IP networking -> IP: kernel level autoconfiguration。如果NFS要使用DHCP,还得选上 IP: DHCP support。
保存配置并重新编译即可。
配置内核参数
进入ARM开发板的设置 linux_cmd_line的地方(mini2440则为开机按 s,输入linux_cmd_line,并带着引号输入参数),或者进入PC的GRUB,设置类似参数
root=/dev/nfs rw nfsroot=192.168.1.1:/linux ip=192.168.1.5:::255.255.255.0:linux::off
该配置为静态IP设置。各参数意义如下:
root=/dev/nfs :指定根文件系统为 /dev/nfs,即NFS 。这与/dev这个目录并没有什么关系,在此仅为一个名字。
rw :根文件系统挂载为可读写。还可以有 ro 即只读的选项。
nfsroot=192.168.1.1:/linux :指明挂载哪一个NFS上的哪一个目录。这里指的是挂载IP 为192.168.1.1的电脑上导出的/linux目录。
ip=192.168.1.5:::255.255.255.0:linux::off :设置本机的IP。此举是为了 连接刚才设置的IP。这里是一个静态的配置,配置的格式为 ip=本机的IP地址::网关地址:网络掩码:本机的主机名:网络接口名:off 。一般情况下网关、网络接口名都不需要设置。如果是DHCP获取IP,那很简单,直接 ip=dhcp 即可。
设置NFS服务器
Ubuntu下看链接:http://blog.mcuol.com/User/xiaoxiaopig/article/37324_1.htm
NFS服务器可以是任意操作系统,只要能提供NFS服务即可(WINDOWS可以使用 WSU —— Windows Services for Unix来实现,具体请参考接下来本站要发表的文章)。在这里以Fedora为例,希望别的发行版的用户触类旁通。
对于Fedora来说,有图形界面的工具进行设置,在管理-》服务器设置-》NFS中添加一个共享即可。
更通用的作法,就是修改 /etc/exports文件,之后再启动NFS服务器。
/etc/exports文件格式如下
导出的文件夹 导出的网段(对该导出的网段的选项)
所谓导出的网段就是只向哪个网段导出,保证安全性。一个例子为:
/linux 192.168.1.0/24(rw,sync,no_root_squash)
就是将 /linux 导出到网段为192.168.1.0,子网掩码为255.255.255.0 (即24)的网络。其中可用的选项为(翻译自man文档):
secure和insecure : secure选项下,所有连接的端口均小于1024。默认打开。
rw和ro : Read/Write和Read Only
async和sync async将使用异步数据存取,数据并非马上写入服务器的。sync则相反。使用async需要注意服务器不能随意不正常地关闭,否则可能导致数据丢失。
no_wdelay :不使用延迟写入。NFS服务器会将写入写入请求缓冲起来,可以提高性能。如果async已经打开那么该选项无效。
no_subtree_check :不进行子树检查(使用该选项易引起安全问题)
root_squash和no_root_squash、all_squash :root_squash选项使得客户端以root权限访问 文件系统时,转换为服务器端的匿名用户。这选项打开一定要设置好服务器的权限。
之后再重新启动NFS服务。Fedora下使用 /etc/init.d/nfs restart
使用 exports查看导出的文件。
仁科信息
2024-07-24 广告
2024-07-24 广告
Linux系统运维是确保服务器稳定运行的关键环节。它涉及系统安装、配置、监控、故障排除以及性能优化等方面。作为运维人员,我们需要熟练掌握Linux命令和工具,监控系统资源使用情况,及时发现并解决问题。同时,我们还要关注系统安全,采取必要的安...
点击进入详情页
本回答由仁科信息提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |