自制带ftp服务的linux

 

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
 splashimage=(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、测试
 

本文出自 “我爱技术” 博客,转载请与作者联系!

你可能感兴趣的:(linux,ftp服务,自制linux)