网络安装Ubuntu16.04
网络安装Ubuntu16.04
搭建PXE服务器
PXE是Pre-boot Execution Environment,预启动执行环境。是通过网络安装任何linux系统最重要的步骤。
首选搭建PXE服务器,然后再把PXE服务器和要安装Ubuntu16.04的主机放在同一个局域网中。最后设置被安装主机以pxe方式启动。
有个文章介绍原理很清楚 http://www.cnblogs.com/zhangjianghua/p/5872269.html
安装dhcp (不是dhcp3)
sudo apt-get install isc-dhcp-server
配置网卡名称sudo vi /etc/default/isc-dhcp-server中的INTERFACES改为自己网卡名称.(默认为空字符串)
配置dhcpd,编辑sudo vi /etc/dhcp/dhcpd.conf文件
option domain-name "localhost";  # 必须要改,否则syslog报异常,pxe client IP无法获取
option domain-name-servers 本机IP地址;  # 必须要改
allow booting;
allow bootp;
subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.10 192.168.1.30;
    option subnet-mask 255.255.255.0;
    option routers 本机IP地址;
    option broadcast-address 192.168.1.255;
    next-server 本机IP地址;
    filename "pxelinux.0";
}
# 下面不写也行,就是为了指定主机的
host anyname {
    hardware ethernet 被安装主机MAC地址;
    filename "pxelinux.0";
}
以上测试真实有效。注意:后面都有分号结束; 本机IP地址必须也要在192.168.1.0/24网段中。
启动dhcp服务
sudo /etc/init.d/isc-dhcp-server start
注意: 为了不影响公司的局域网,最后与外部的局域网断开,只把pxe服务器和被安装主机用交换机连接起来。或者使用与公司不同的网段。
安装tftp服务
sudo apt-get install tftpd-hpa
sudo apt-get install tftp-hpa
sudo apt-get install inetutils-inetd
这个命令是/usr/sbin/in.tftpd,其服务的脚本是/etc/init.d/tftpd。所以你可以通过下面启动此服务。
sudo service tftpd-hpa start
服务启动后,可以通过tftp客户端命令来尝试tftpd服务是否正常运行。怎么测试呢?首先新建一个测试文件放到/var/lib/tftpboot/目录下。然后输入以下命令:
sudo tftp localhost
> get <测试文件名>
> quit
如果文件下载到了当前目录下,那就说明测试成功。
网上好多文章都说要修改配置文件/etc/default/tftpd-hpa,修改内容如下:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"
# 下面是新增的,但不知道为什么要加,估计不写也行
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"
安装apache2
我不太喜欢NFS,感觉太慢,还是apache比较快些。
sudo apt-get install apache2
我是使用Oracle VirtualBox安装的ubuntu16.04系统作为pxe服务器,所以需要把网络改成桥接网络,不用重启虚拟机,只要在ubuntu系统中重启网络就可以了。运行/etc/init.d/networking restart命令获取一下最近IP地址.
这时候访问http://host_ip/地址就会显示apache默认主页。 (apache安装完了自动启动)
下载ISO
把ubuntu的ISO放到/var/www/html(apache的web根目录)目录下。
sudo wget https://mirror.tuna.tsinghua.edu.cn/ubuntu-releases/16.04/ubuntu-16.04.2-server-amd64.iso
文件大约829M。
ISO不能直接用,除非使用nfs。需要先mount
sudo mount -o loop ubuntu.iso /mnt
然后把里面的install/netboot中所有内容复制到/var/lib/tftpboot中。
下载netboot文件 (此步骤不要做,太坑了,要用ISO中install/netboot替代)
netboot文件下载后放到/var/lib/tftpboot目录下,用于引导被安装主机的启动。
cd /var/lib/tftpboot
wget  http://archive.ubuntu.com/ubuntu/dists/precise/main/installer-i386/current/images/netboot/netboot.tar.gz
文件大约20M。
下载之后开始解压
sudo tar -xzvf netboot.tar.gz
解压后就会出现pxelinux.0文件。
新版本ubuntu的pxe已经不在/var/lib/tftpboot/pxelinux.cfg/default文件中了,而是在/var/lib/tftpboot/ubuntu-installer/i386/boot-screens/txt.cfg文件中。label后面也不是Linux了,而是install。更改append后面的内容.
append vga=788 initrd=ubuntu-installer/i386/initrd.img  ks=http://192.168.1.10/ks.cfg   #告诉系统,从哪里获取ks.cfg文件
上面的配置说明使用ks.cfg来安装ubuntu,那么这个ks.cfg要放到/var/www/html目录下。
安装ubuntu
给被安装的主机加电,进入BIOS,选择从网卡启动(或者被称为PXE)。然后就会进入DHCP获取阶段,这时候如果出现问题,那么就可以到pxe服务器上查看/var/log/syslog日志报错信息。如果没有任何信息,看看防火墙有没有关闭。
如果是正常信息,会打印出
dhcpd[进程ID] DHCPDISCOVER from MAC地址 via 网卡名称
dhcpd[进程ID] DHCPOFFER on 分配的IP地址 to MAC地址 via 网卡名称
dhcpd[进程ID] DHCPREQUEST for 分配IP地址(DHCP服务IP地址) from MAC地址 via 网卡名称
dhcpd[进程ID] DHCPACK on 分配的IP地址 to MAC地址 via 网卡名称
之后被安装主机会显示一个图形菜单。选择install, 竟然从cn.archive.ubuntu.com上下载镜像,而不是从我的pxe服务器。
安装过程中遇到太多的坑了。
- 首先是网卡识别不了---> 发现是由于netboot与ISO中估计不一样导致,使用ISO中install/netboot覆盖/var/lib/tftpboot就可以了。
- 之后出现Installation step failed错误,查了网上http://www.michaelm.info/blog/?p=1378说的解决方法,但是d-i是什么鬼呀。又去查了一下,找到这个http://mole1230.blog.51cto.com/837625/1430489。算了没时间看了。
总结
- 先把ISO挂载到/mnt目录下,把里面的东西cp -avr /mnt/* /var/www/html/ubuntu/复制到apache下面。
- 使用ISO中的netboot: cp -avr /mnt/install/netboot/* /var/lib/tftpboot
- 可能需要ks.cfg,直接使用ISO是不行(东西拿出来散放),除非使用nfs方式(这个我没有试验)。
vi /var/lib/tftpboot/pxelinux.cfg/default
#在最后增加如下内容
label linux
        kernel ubuntu-installer/amd64/linux
        append ks=http://192.168.1.20/ks.cfg vga=normal initrd=ubuntu-installer/amd64/initrd.gz 
还有一种
label linux
        kernel ubuntu-installer/amd64/linux
        append vga=798 initrd=ubuntu-installer/amd64/initrd.gz url=http://<your_local_server>/preseed.seed
preseed.seed文件在/var/www/html中,内容如下:
d-i clock-setup/utc boolean true
d-i time/zone string Europe/Ljubljana
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string sl
d-i debian-installer/language string English
d-i debian-installer/country string SI
d-i debian-installer/locale string en_US.UTF-8
d-i keyboard-configuration/layout select Slovenian
d-i keyboard-configuration/variant select Slovenian
d-i keyboard-configuration/layoutcode string sl
d-i keyboard-configuration/xkb-keymap select sl
d-i mirror/country string manual
d-i mirror/http/hostname string netboot.abakus.si (替换成你的)
d-i mirror/http/directory string /iso/ubuntus1404_64(替换成你的)
d-i mirror/http/proxy string
d-i apt-setup/restricted boolean true
d-i apt-setup/universe boolean true
d-i apt-setup/backports boolean true
d-i apt-setup/services-select multiselect security
d-i apt-setup/security_host string netboot.abakus.si
d-i apt-setup/security_path string /iso/ubuntus1404_64/  (替换成你的)
d-i live-installer/net-image string http://<your_local_server>/iso/install/filesystem.squashfs
#d-i debian-installer/allow_unauthenticated boolean true
d-i preseed/late_command string wget http://<your_local_server>/boot/sources.list -O /target/etc/apt/sources.list
上面过程参考:http://linux.opm.si/programska-oprema/ubuntu-14-04-network-install。
不知道好不好使 												
网络安装Ubuntu16.04的更多相关文章
- 路由器安装ubuntu-16.04.1-server-amd64出现“无法安装busybox-initramfs”错误。向目标系统中安装busybox-initramfs软件包时出现一个错误。请检查/var/log/syslog或查看第四虚拟控制台以获得详细
		公司的路由器要ubuntu服务器进行路由网络功能的管理,在安装的时候出现下面的错误提示: 安装ubuntu-16.04.1-server-amd64出现“无法安装busybox-initramfs”错 ... 
- 初用Linux, 安装Ubuntu16.04+NVIDIA387+CUDA8.0+cudnn5.1+TensorFlow1.0.1
		因为最近Deep Learning十分热门, 装一下TensorFlow学习一下. 本文主要介绍安装流程, 将自己遇到的问题说明出来, 并记录自己如何处理, 原理方面并没有能力解释. 由于本人之前从来 ... 
- win7下通过easyBCD引导安装Ubuntu16.04(并处理遇到的坑)
		Ubuntu16.04作为目前最新版本的ubuntu系统,相信很多人都想在自己的电脑上安装一下,然而系统的安装方法各式各样,u盘法.grub引导法等等,这里我将介绍在win7系统下用easyBCD软件 ... 
- win10安装ubuntu16.04双系统历程
		目录 win10安装ubuntu16.04双系统 历程 安装时间 安装准备 安装过程 其他问题 win10安装ubuntu16.04双系统 历程 安装时间 2018.11.30 安装准备 u盘(格式化 ... 
- 用 EasyUEFI 在 Win8/10 中硬盘安装 Ubuntu16.04图文教程
		用 EasyUEFI 在 Win8/10 中硬盘安装 Ubuntu 作者:TeliuTe 来源:基础教程网 1.准备Ubuntu安装文件 1)下载带amd的64位 Ubuntu 桌面版光盘镜像文件,如 ... 
- windows10下安装ubuntu16.04 双系统
		软件和材料: UltraISO .ubuntu16.04镜像.U盘 步骤: 1.先在windows10 上下载UltraISO并安装 2.打开UltraISO,插入优盘,制作ubuntu160.4 ... 
- Windows下安装Ubuntu16.04双系统
		ROS需要在Ubuntu系统上开发,虚拟机跑Ubuntu开发ROS容易出现各种各样的问题,所以需要安装Ubuntu16.04双系统.笔者也是一步步按着网上的帖子来,由于网上的教程都不是最新的而且有的也 ... 
- Win7 U盘安装Ubuntu16.04 双系统详细教程
		Win7 U盘安装Ubuntu16.04 双系统详细教程 安装主要分为以下几步: 一. 下载Ubuntu 16.04镜像软件: 二. 制作U盘启动盘使用ultraISO: 三. 安装Ubuntu系统: ... 
- win10下安装Ubuntu16.04双系统
		其实我是不喜欢系统的,之前都是在win下面进行开发,现在来了个项目,经过各种环境的安装调研,最终选择在Ubuntu下面进行开发.之前想着为啥不在虚拟机里面安装Ubuntu进行操作呢,由于虚拟机的体验不 ... 
随机推荐
- [Windows] IIS6 部署ISAPI
			环境: OS:Windows Server 2003 Enterprise sp2 34位 IIS:6.0 ISAPI: delphi xe 编译的webbroker isapi dll 32位 ( ... 
- MVC4 View  的呈现
			一 ActionResult: 1. EmptyResult: Action方法返回的ActionResult对象被ActionInvoker 调用以实现对当前请求的响应,不论Action方法是否具有 ... 
- [LeetCode 题解]: Roman to Interger
			前言 [LeetCode 题解]系列传送门: http://www.cnblogs.com/double-win/category/573499.html 1.题目描述 Given a ro ... 
- Arcgis Android 常见问题
			关于arcgis android 安装包较大的问题 如果想缩小大小,可以只保留armeabi,只是这样就不支持x86类型cpu的手机了. 可以考虑做成单独的版本,供用户下载. 即打2个包,一个供普通a ... 
- C#串口数据互通小程序
			主要功能: 所编写的程序需将串口1.串口2数据互通,即:串口1接收到数据的同时将数据通过串口2发出,串口2接收到数据的同时将数据通过串口1发出. 并根据需要由指定串口发送或获取数据. 代码如下: us ... 
- 基于.net standard 的动态编译实现
			在前文[基于.net core 微服务的另类实现]结尾处,提到了如何方便自动的生成微服务的客户端代理,使对于调用方透明,同时将枯燥的东西使用框架集成,以提高使用便捷性.在尝试了基于 Emit 中间语言 ... 
- OO  面向对象的概念
			面向对象的概念 一.什么是面向对象? 传统的:世间万物都是对象.例如:桌子,凳子,电脑等: 个人理解: 1.软件开发方法: 2.面向对象是一种解决问题和分析问题的(编程)一种思想: 3.他是通过面向过 ... 
- C - Maximum of Maximums of Minimums(数学)
			C - Maximum of Maximums of Minimums You are given an array a1, a2, ..., an consisting of n integers, ... 
- 原生态js回顶部
			<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ... 
- ubuntu 12.0.4 下python3.x web环境搭建
			ubuntu 12.0.4 安装python3.x 1. $ sudo add-apt-repository ppa:fkrull/deadsnakes$ sudo apt-get update$ s ... 
