DD初学Linux系列–环境安装搭建及启动过程 


一、PC版:

   前段时间生日,自己入手了一块三星的SSD作为生日礼物。具体型号:(840EVO,mSATA接口),因为刚好我的本本有mSATA接口,就不需要拆原来的硬盘了。
上周末,给自己的本本重装了下系统,SSD上装win8.1,原来硬盘装系统和软件的盘来装Ubuntu麒麟版。
先装了win8.1,再装Ubuntu,接下来就是引导了,用了EasyBCD来设置。
于是顺便了解了下Linux引导(LILO和Grub)—来源于网络
如果想要在同一机器上运行 Windows 和 Linux,那么应该先安装Windows OS,然后再安装 Linux OS,这样,在 Linux 安装中所选择的引导加载程序就不会被 Windows 引导加载程序所覆盖。与 Linux 引导加载程序不同,多数 Window 引导加载程序不支持引导 Linux。如果已经先安装了 Linux,那么只需要自己创建一张 Linux 引导盘,这样就可以在安装完 Windows 之后,回到 Linux 安装中并重写 MBR
二级引导加载程序:
BIOS(BootLoader)–>主引导记录MBR激活引导加载程序–>初始程序加载程序(IPL)查询分区表–>第二阶段引导加载程序–>内核引导等


二、嵌入式版:

现成的硬件平台,现成的内核,现成的文件系统,搭建Linux应用开发环境。
主要是:
1. tftp与NFS安装,让硬件平台从网络加载内核(tftp)并挂载网络文件系统(NFS)。
2. ARM交叉编译链安装

tftp安装:
1、安装相关软件包
//apt-get install tftpd (服务端)
//apt-get install tftp (客户端)
sudo apt-get install tftp-hpa tftpd-hpa xinetd

2、建立配置文件

cd /etc/xinetd.d/
gedit tftp
输入
service tftp
{
  socket_type = dgram
  protocol = udp
  wait = yes
  user = root
  server =/usr/sbin/in.tftpd
  server_args =-s/mnt/tftpboot
  disable = no
  per_source = 11
  cps = 100 2
  flags = IPv4
}

存盘退出
3、建立tftp服务文件目录
mkdir /mnt/tftpboot
4、从新启动服务
/etc/init.d/xinetd restart(针对xinetd)

安装完成!测试方法:
在/tftpboot 目录下随便放个文件abc
然后 运行tftp 192.168.1.107 进入tftp命令行
输入get abc 看看是不是能把文件下下来,也可以put 文件上去。注意:要在root权限

NFS安装:
1.安装NFS sudo apt-get install nfs-kernel-server
2.执行命令:mkdir  建立一个nfs服务的专有的文件夹
3.建立好文件夹后,接着执行命令:sudo gedit /etc/exports 配置nfs,
在文章的最后一行添加:**/nfs *(rw,sync,no_root_squash,no_subtree_check)
注:nfs允许挂载的目录及权限,在文件/etc/exports中进行定义,各字段含义如下:
/mnt/NFS:要共享的目录
*:允许所有的网段访问
rw :读写权限
sync:资料同步写入内在和硬盘
no_root_squash:nfs客户端共享目录使用者权限
特别要注意 :insecure

ro 只读访问
rw 读写访问
sync 所有数据在请求时写入共享
async NFS在写入数据前可以相应请求
secure NFS通过1024以下的安全TCP/IP端口发送
insecure NFS通过1024以上的端口发送
wdelay 如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide 在NFS共享目录中不共享其子目录
no_hide 共享NFS目录的子目录
subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squash root用户具有根目录的完全管理访问权限
anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID

4.执行命令:sudo /etc/init.d/portmap restart
重启portmap服务。nfs是一个RPC程序,使用它前,需要映射好端口,通过portmap设定。
5.执行命令:sudo /etc/init.d/nfs-kernel-server restart 重启nfs服务
注:rpcbind(Ubuntu14.04)就是高版本的portmap

注意此时可能会出现:Not starting: portmapper is not running //重启Ubuntu系统后就好了;

6、测试 NFS
showmount -e
sudo mount  192.168.1.107:/mnt/NFS  /home
看是否已经挂载成功
sudo umount
如果用在嵌入式设备上挂载,要加上参数-o nolock

添加环境变量:
gedit ~/.profile,
在最后一行添加:export PATH=$PATH:/usr/local/arm/4.3.2/bin,
接着source ~/.profile:立即生效
sudo gedit /etc/environment,在最后一个:号之后和“号之前添加/usr/local/arm/4.3.2/bin