1、 添加一个硬盘
查看fdisk –l   添加的硬盘(/dev/sdb)

2、创建分区
fdisk /dev/sdb n 添加
第一个分区 大小为100M,用于/boot 分区;
第二个分区 大小为1G,用于 / 分区;

3、 格式化分区
mkfs –t ext3 /dev/sdb1
mkfs –t ext3 /dev/sdb2

partprobe /dev/sdb  #让内存加载
4、 挂载分区
mkdir   /mnt/boot   /mnt/sysroot   #创建挂载点
mount  /dev/sdb1   /mnt/boot      # 挂载/dev/sdb1分区到/mnt/boot 挂载点
mount /dev/sdb2    /mnt/sysroot   # 挂载/dev/sdb2分区到/mnt/sysroot 挂载点

5、创建MBR
MBR 包括三部分 :
1、bootload 446B ,用于开机启动加载(grub菜单第一步);
2、magic 2B,物理磁盘标示符;
3、partion 46B,磁盘分区表。
grub-install  --root-directory=/mnt/  /dev/sdb  #在/dev/sdb上创建MBR

6、准备内核、内核驱动及背景图片
[root@zlj abc]# zcat initrd-2.6.18-164.el5.img  |cpio -id  
vim init   将swap禁用

find |cpio -o -H newc --quiet |gzip -9 >initrd.gz  #将文件打包

cp /boot/vmlinuz-2.6.18-164.el5 /mnt/boot/  #内核

背景制作工具做一张图片

上传两张背景图片

cp /home/user1/4.xpm.gz  /mnt/boot/grup #将图片拷到当前文件夹下
7、编写grub菜单
vim grub/grub.conf # 编辑grub 菜单
default=0
timeout=5
splashp_w_picpath=(hd0,0)/grub/4.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-164.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/sda2 rhgb quiet
initrd /initrd.gz
~                                                                                     
~                                                                                     
~     

~                                                                                     
~        
cd /mnt/sysroot/
mkdir bin boot dev etc home lib  media misc mnt net opt proc root sbin selinux src sys tftpboot tmp usr var    #创建目录

8、编写脚本 
查找指令依赖 并拷贝到指定的目录
vim /home/user1/cp.sh 
#!/bin/bash
read -p "please input Command:" COMMAND
CPATH=`which $COMMAND |tail -1`
LPATH=`ldd $CPATH |grep /lib/`
PPATH=${CPATH%/*}
/bin/cp -f $CPATH /mnt/sysroot$PPATH/
if [ -e /cp ];then
rm -f /cp
fi
for i in $LPATH ;do
echo $i |grep "/lib/" >>/cp
done
while read line;do
#echo $line
NAME=${line##*/lib/}
/bin/cp -f /lib/$NAME /mnt/sysroot/lib/
done </cp
9、准备指令
mkdir usr/lib etc/rc.d  #创建子目录
将init bash  halt shutdown ls chroot mount mkdir cp   reboot vim  ifconfig sysctl insmod  ping arp netstat   vsftpd拷贝过去

8、创建init文件
a、编辑inittab文件
vim /mnt/sysroot/etc/inittab 
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc.sysshutdown
l6:6:wait:/etc/rc.d/rc.sysreboot
B、vim /mnt/sysroot/etc/rc.d/rc.sysinit 
#!/bin/bash
if [ -f /etc/sysconfig/network ];then
. /etc/sysconfig/network
fi
if [ -z $HOSTNAME ]; then
/bin/hostname localhost
else
/bin/hostname $HOSTNAME
fi
/sbin/sysctl -p &>/dev/null
/sbin/insmod  /lib/modules/mii.ko
/sbin/insmod  /lib/modules/pcnet32.ko
/sbin/ifconfig eth0 192.168.1.1/24
/sbin/ifconfig lo 127.0.0.1/8
/bin/bash
echo -e -n "\033[31m Startup is complete \033[0m"
echo  -e "\t\t\t\t\t\t \033[32m [ok]\033[0m "
~     

chmod a+x rc.sysinit      #  修改文件的权限
C、创建关机脚本
vim rc.sysshutdown  
#!/bin/bash
exec /sbin/halt -p
chmod a+x rc.sysshutdown 
D、创建重启脚本
vim rc.sysreboot
#!/bin/bash 
exec /sbin/reboot
~                   
chmod a+x rc.sysreboot
E、创建网卡模块
创建模块文件夹
mkdir -pv /mnt/sysroot/lib/modules
将pcnet32.ko、mii.ko(网卡模块)复制到modules内

9、搭建ftp服务器
cp /etc/passwd /etc/shadow /etc/group /mnt/sysroot/etc/ #服务器需要用户id
mkdir /mnt/sysroot/etc/vsftpd #ftp配置脚本文件夹
cp /etc/vsftpd/vsftpd.conf  /mnt/sysroot/etc/vsftpd/ #将配置文件拷到vsftpd内

编辑nsswitch.conf 
vim  /mnt/sysroot/etc/nsswitch.conf  # 用于将用户名对应为用户ID
passwd:     files
shadow:     files
group:      files
复制nsswitch.conf需要的动态链接库
cp -d /lib/libnss_compat* /mnt/sysroot/lib/
cp -d /lib/libnss_files* /mnt/sysroot/lib/

vim /mnt/sysroot/etc/vsftpd/vsftpd.conf
禁用日志功能,pam及用户列表
mkdir /mnt/sysroot/usr/share/empty -pv
Mkdir  -r /mnt/sysroot/usr/ftp/pub
Chmod o+wt /mnt/sysroot/usr/ftp/pub #修改权限
10、测试

转载于:https://blog.51cto.com/zhoulinjun/1156708

自制带ftp服务的linux相关推荐

  1. 详解FTP服务完成Linux和WIN10之间的信息传输(实验详解)

    详解FTP服务完成Linux和WIN10之间的信息传输(实验详解) 一.FTP简介 1. FTP服务--用来传输文件的协议 2.端口 3.数据连接模式 二.相关配置 1.安装FTP服务 2.设置匿名用 ...

  2. linux下ftp服务教案,linux下ftp服务

    Linux ftp命令的一般格式如下: $ ftp 主机名/IP 其中"主机名/IP"是所要连接的远程机的主机名或IP地址.在命令行中,主机名属于选项,如果指定主机名,ftp将试图 ...

  3. linux关闭ftp服务命令,Linux命令ftpshut 在指定时间后关闭ftp服务

    ftpshut命令用于在指定时间后关闭ftp服务.ftpshut是proftpd中一个重要命令. ftpshut命令用于管理员在设置的时间关闭FTP服务器,在关闭之前会发出警告信息通知用户.关闭时间若 ...

  4. redhat linux 安装ftp服务,RedHat Linux 9.0为例介绍一下如何安装和配置vsftpd服务器

    本文以RedHat Linux 9.0为例介绍一下如何安装和配置vsftpd服务器. 安装服务器程序 程序下载地址:,目前最新版本为2.0.3,源程序文件名为vsftpd-2.0.3.tar.gz. ...

  5. 使用SSH客户端远程登录Linux主机(可替代samba、ftp服务)

    使用SSH客户端远程登录Linux主机(可替代samba.ftp服务) Linux系统起初就是为多用户而产生的,可以允许多个用户同时登录linux主机各自进行操作,如图1所示:   图1 SSH(Se ...

  6. Linux 中FTP服务的应用(安装配置)

    1.安装ftp服务 首先检查是否安装过: #没有输出说明当前系统并没有安装vsftp [root@min2 ~]# rpm -qa|grep vsftpd [root@min2 ~]# 方式一&quo ...

  7. Linux与云计算——第二阶段Linux服务器架设 第八章:FTP服务器架设—安装配置FTP服务和客户端配置...

    Linux与云计算--第二阶段Linux服务器架设 第八章:FTP服务器架设-安装配置FTP服务和客户端配置 安装Vsftpd [1] 安装并配置Vsftpd. [root@server ~]# yu ...

  8. linux中的FTP服务配置详解

    本文主要内容有:linux中安装vsftpd(也就是FTP服务). 1.使用匿名用户上传和下载文件. 2.使用身份验证的方式上传和下载文件. 3.建立虚拟用户(步骤比较多). 4.为单独的用户建立单独 ...

  9. linux怎么配置ftp服务,Ubuntu下安装、配置FTP服务

    续根据前两篇 http://www.linuxidc.com/Linux/2011-09/42775.htm 与 http://www.linuxidc.com/Linux/2011-09/42777 ...

  10. mac使用被动ftp模式(pasv)_网络安全工程师与白帽子黑客教你:Kali Linux之使用Metasploit进行FTP服务扫描实战...

    本分享仅做学习交流,请自觉遵守法律法规! 搜索:Kali与编程,学习更多网络攻防干货! 下篇文章将在明天下午五点发布,敬请关注! 一.背景介绍 FTP是用来在两台计算机之间传输文件,是Inter ...

最新文章

  1. 群晖 root_群晖多人协作开发
  2. 2019牛客暑期多校训练营(第一场) A Equivalent Prefixes ( st 表 + 二分+分治)
  3. 分配的访问权限的展台应用:最佳做法
  4. 【转】OData的初步认识
  5. 解决yum [Errno 256] No more mirrors to try
  6. B站获得英雄联盟赛事直播三年独播版权
  7. 广播路由算法: 如何优雅地传递悄悄话?
  8. 前端模板技术的全面总结
  9. 汇编语言---王爽 (实验 8)分析一个奇怪的程序
  10. java统计单机次数_java流类,快速统计出字符次数+++
  11. 64 位Instant Client连接64位PLSQL(win10)
  12. 无盘服务器bios设置,无盘服务器bios设置
  13. DBF文件的初步了解(一)
  14. python中英文切换_python国际化(i18n)和中英文切换
  15. ESP8266通过arduino IED连接巴法云(TCP创客云)
  16. framework7 入门知识
  17. 「TCG 规范解读」初识嵌入式和工业工作组
  18. linux实验实训报告,linux实验实训报告.doc
  19. Python 常用标准库介绍
  20. 毕业设计 单片机智能识别机器人 - 物联网 深度学习 AI 图像分类

热门文章

  1. ENVI入门系列教程---一、数据预处理---4.1 遥感图像正射校正
  2. Landsat8的不同波段组合说明
  3. 《深度学习Python实践》第17章——算法调参
  4. Arcgis 如何将大量数据转换成csv导出
  5. ENVI实验教程(6)实验六、遥感图像分类
  6. endnote x8安装办法
  7. PHP裁剪图片且保留背景透明
  8. nodejs实现同步http请求
  9. linx文件服务器命令,linux服务器文件命令
  10. Vue学习笔记----基础