Linux入门之一步一步安装系统

  • 1引言
  • 2安装前的准备工作
    • 下载vmware workstation
    • 下载gentoo所需要的文件
    • 知识点
      • 1 我们下载的是基于x86架构的安装包在这里我们可以学习到用什么来区分架 构例如X86SPARC MIPS等这些标识主要是用来区分cpu的指令集的不同体系 不同型号的cpu有不同的指令集因此我们选择安装包时就需要选择和cpu指令匹配的包
      • 2 几乎所有的个人电脑PC都是X86X86_64的
      • 3 64位和32位的区别是cpu总线的宽度不同cpu总线又有数据总线控制总线和地址总线之分数据总线位数越多代表一次传输的数据量越大吞吐量地址总线位数越多能访问到的内存地址就越多可以支持更大的内存
  • 3启动虚拟机
    • 根据vmware新建向导创建新的虚拟机
    • 启动虚拟机
  • 4 硬盘操作
    • 硬盘操作指的是对硬盘进行格式化和分区
    • 很多人会觉得这一步有点难难在使用windows太久了习惯了windows的设置
    • fdisk和gdisk都是可以对硬盘进行分区和格式化的工具怎样区别这两个工具呢
    • 说了这么长那么FDISK和GDISK有什么区别
    • 开始硬盘操作
  • 5 安装前序
  • 6 进入新环境 chroot
  • 7 安装kernel
    • 下面我们学习一下手动安装kernel
    • 真正方便的安装方法是genkernel all
  • 8 系统配置
    • etcfstab
    • 网络信息
    • 安装bootloader
    • 安装完毕

1.1引言

为什么是Gentoo?

在以往,学习Linux可以从安装linux系统开始,但是现在Linux系统安装变得越来越简单,但是为了学习,我们必须挑一个有点儿挑战性的linux发行版,Gentoo是一个安装稍为麻烦的linux发行版本,正好适合我们来学习安装系统。

Gentoo的安装基本上是依赖网络的,因此在安装前,我们必须保证我们的计算机能连接上网络。

我们用Vmware虚拟一台计算机来安装系统,这样更方便学习和游戏,在Linux下学习,在Windows下游戏,学习游戏两不误。

1.2安装前的准备工作

1. 下载vmware workstation

   可以在这里下载:http://www.vmware.com/cn/products/workstation/workstation-evaluation

2. 下载gentoo所需要的文件

  1. 启动计算机所需要的启动CD
     [点击下载当前使用的启动CD](http://distfiles.gentoo.org/releases/x86/autobuilds/20160621/install-x86-minimal-20160621.iso)
  2. stage,stage的文件档案包含了安装gentoo的基本环境,linux文件目录结构。
     [点击下载当前使用的版本](http://distfiles.gentoo.org/releases/x86/autobuilds/20160628/stage3-i686-20160628.tar.bz2)
  3. portage,是一个软件文件快照,是gentoo软件包管理的仓库目录
     [点击下载当前使用的portage](http://gentoo.osuosl.org/snapshots/portage-20160602.tar.bz2)
  4. xshell 为了方便控制虚拟机,我们需要一个终端模拟器,xshell正是我们所需
     [在这里可以下载到它](http://xshell.en.softonic.com/)

3. 知识点

(1). 我们下载的是基于x86架构的安装包,在这里我们可以学习到用什么来区分架 构,例如:X86,SPARC, MIPS等,这些标识主要是用来区分cpu的指令集的不同体系, 不同型号的cpu有不同的指令集,因此我们选择安装包时就需要选择和cpu指令匹配的包。

(2). 几乎所有的个人电脑(PC)都是X86(X86_64)的。

(3). 64位和32位的区别是cpu总线的宽度不同,cpu总线又有数据总线、控制总线和地址总线之分,数据总线位数越多代表一次传输的数据量越大(吞吐量);地址总线位数越多能访问到的内存地址就越多(可以支持更大的内存)。

1.3启动虚拟机

1. 根据vmware新建向导创建新的虚拟机

下图是光盘映像的选择,正是我们下载的install CD

Linux入门之一步一步安装系统_第1张图片
图1.3.1

我选择了网络桥接方式,等同于把虚拟机和主机接着同一个集线器般,这样方便分配IP地址。

Linux入门之一步一步安装系统_第2张图片
图1.3.2

Linux入门之一步一步安装系统_第3张图片
图1.3.3

2.启动虚拟机

当出现下图画面时,直接按回车.

Install CD装载预设的内核,返回一个root shell给用户 。

看到上图的画面时,虚拟机启动已成功,这是一个基于LiveCD的linux系统。

现在轮到Xshell出马了,不知道你有没有安装好了Xshell?

为了使用Xshell,我们得打开LiveCD的sshd服务,还得设置root密码,LiveCD默认root是空密码。

我们进入虚拟机,敲入以下命令:

passwd root   #输入任意能记住的密码
vi /etc/ssh/sshd_config   #修改sshd配置文件,具体修改看下图
/etc/init.d/sshd start    #启动sshd服务

sshd_config配置里的第44行改为PermitRootLogin yes,允许root通过ssh远程登入本机

Linux入门之一步一步安装系统_第4张图片

第72行打开PasswordAuthentication yes

呼叫xshell,建立新连接,具体参考下面图示:

Linux入门之一步一步安装系统_第5张图片

上图Name为任意词,Host请填入虚拟机的IP,可以通过在虚拟机内敲入:

ifconfig
Linux入门之一步一步安装系统_第6张图片

为迎合使用偏好和更显高大上,xshell可作以下配置:
Linux入门之一步一步安装系统_第7张图片
Linux入门之一步一步安装系统_第8张图片

1.4 硬盘操作

1. 硬盘操作指的是对硬盘进行格式化和分区。

Linux比较流行的格式是ext3,ext4,xfs,这可以和windows的NTFS,FAT作对比。
EXT3/EXT4/XFS等格式在Linux下称为文件系统。
我们可以通过Linux提供的工具:FDISK,GDISK等,对硬盘进行分区和格式化。

2. 很多人会觉得这一步有点难,难在使用windows太久了,习惯了windows的设置。


  1. Linux文件系统没有盘的称呼,它只有一个符’/’, 叫根,树根的根,它也像树根一样,是所有文件的起源。
  2. 访问任何一个Linux文件,它的绝对路径必定是在’/’开始的。
  3. Linux任何一个常规目录都可以成为类似于windows的盘符,之所用用常规来形容,是因为有的目录是比较特殊的,如/dev,是硬件设备挂载目录,/dev里面的文件就是系统所能访问的硬件设备,这也是Linux有别于window的一个地方,Linux把硬件当作一个文件去使用,当你操作(读写)硬件时,就像操作文件般简单。又如/proc, 这是一个内存里的数据映射的文件的目录,里面文件的内容如实反映了当前系统内核的设置,读写/proc文件就能和内核实时交互。
  4. 硬盘分区后可以随意挂载在Linux的目录下,一个成功的挂载方案的前提是:根目录’/’下面必须有分区挂载。也就是说,如果硬盘只有一个分区,这个分区就必须挂在’/’下面,如果硬盘有两个分区,除了挂载在’/’下的分区,另外一个分区可以任意挂载到Linux的常规目录下,例如:/home。
  5. 分区的挂载其实就是等于为硬盘分配一个盘符,像windows般, 分区挂载在’/’下面,我们可以称呼这个分区为’/’盘(根盘),但我建议还是忘掉windows关于盘符这样的称呼。
  6. Linux有一个标准去规范文件目录:Filesystem Hierarchy Standard (FHS),我们暂时只需要知道几个重要的目录:

(1) / : root根目录;
(2) /usr : unix software resource, 是Linux软件安装和执行的目录;
(3) /etc : Linux软件的配置文件目录

3. fdisk和gdisk都是可以对硬盘进行分区和格式化的工具,怎样区别这两个工具呢?


  1. 首先,我们要知道,硬盘要有一个表格去记录:分几个区?每个区的大小?
  2. 于是,就有不同的分区记录方法,主要是MBR(Master Boot Record)和GPT(GUID partition table)
  3. MBR方式只规划一个很少的空间(64字节)去记录分区表格,这个空间大小仅能记录4组分区信息,因此,MBR方式只能把一个硬盘分成4个区,有时候4个区可能不能满足需求,聪明的人们想出了一种间接记录的方法,这就有了主分区和扩展(逻辑)分区的称呼,扩展分区的意思是在分区里额外扩展出一个空间去记录硬盘分区表,扩展出来的新的记录空间就不用受MBR 64byte大小的限制,可以分割出多个逻辑分区。这就是等于先在MBR里记录一条信息,指出更详细的分区表格请到扩展分区的空间查找,这种间接的方法就像C语言的指针。
  4. GPT方式没有MBR的限制,GPT使用了34个相当于MBR区块大小的空间,用来记录分区表格,而且GPT不同于MBR仅有一个区块被破坏就死翘翘,GPT除了使用硬盘开始的34个区块记录分区表格外,还使用了硬盘最后的33个区块来备份表格。为什么是33个区块,不是34个备份区块? 因为GTP第1个区块是用来存放开机管理程序的,这也是为了兼容MBR, MBR本身大小是512字节,但是预留了446字节是用来储存开机程序的。
  5. 开机管理程序(boot loader)是存在放硬盘开始的第一(0号)个区块里

(1) 为什么要在第一个区块呢?当然是为了方便读取和记忆。
(2) 什么程序会去读取boot loader呢? 答案是BIOS,相信大家都认识了,BIOS是写在主板ROM上的一个程序,只要主板一通电,BIOS就会自动运行。

4. 说了这么长,那么FDISK和GDISK有什么区别?

区别就是FDISK只能认识MBR分区表格
而GDISK认识的是GPT

5. 开始硬盘操作

我们保守一点,采用FDISK对硬盘进行分割。

lsblk #输入这个命令可以列出当前可系统里面的存储设备

fdisk /dev/sda #上图列出的sda,路径是在/dev下面的

Linux入门之一步一步安装系统_第9张图片

在下面我把硬盘分割成两个盘,一个是1024M大小,另一个是39G大小

Linux入门之一步一步安装系统_第10张图片

最后按w保存,硬盘分区完成,接下来进行硬盘的格式化

Linux入门之一步一步安装系统_第11张图片

上图中,我使用一个命令,mkfs.xfs 将/dev/sda2格式化为xfs格式, 其中mkfs.xfs可以设置很多参数去改变硬盘的效能,不过我们用预设的参数就已经很理想了,我的计划是把/dev/sda2挂载在 / 下面。
我再用mkswap 把/dev/sda1格式化成swap格式的分区,这个是用于虚拟内存的,当物理内存不足时,系统会使用这个虚拟内存空间(用硬盘来模拟内存,所以叫虚拟内存)。

直至此,硬盘的分区和格式化完毕,接下来进行Gentoo系统环境的安装,stage的安装。

1.5 安装前序

我们下载一个工具winscp将1.2.2小节提及到的文件传输至虚拟机里
winscp下载

mount /dev/sda2 /mnt/gentoo   #把硬盘sda2这个分区挂载到/mnt/gentoo这个目录

#然后我们打开winscp将方件伟输到/mnt/gentoo目录下

cd /mnt/gentoo           #进入到gentoo目录,经过硬盘挂载后,/mnt/gentoo目录相当于硬盘的分区盘符
tar xvf  stage3-i686-20160628.tar.bz2   #解压stage包,tar命令相当于window的rar,是包管理命令
tar xvf  portage-20160602.tar.bz2 -C /usr 
#安装Portage快照,一个用来告诉Portage哪些软件标题可用于安装、哪些配置文件可以由管理员选择等等的文件集合。
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf  #选择镜像文件
cp -L /etc/resolv.conf /mnt/gentoo/etc/  #复制DNS信息

#下面命令是挂载必要的文件系统
mount -t proc proc /mnt/gentoo/proc 
mount --rbind /sys /mnt/gentoo/sys     #/sys 是和 /proc 类似的文件系统
mount --make-rslave /mnt/gentoo/sys    #--make-rslave操作是稍后安装systemd支持时所需要的。
mount --rbind /dev /mnt/gentoo/dev     #--make-rslave有绑定挂载的意思
mount --make-rslave /mnt/gentoo/dev    

经过上面的准备(安装),已经为我们创造了一个新的linux环境,接下来我们就进入这个新的环境

1.6 进入新环境 chroot

现在所有的分区已经初始化,并且基础环境已经安装,是时候进入到新的安装环境了。这意思着会话将把根(所能访问到的最顶层位置)从当前的安装环境(安装CD或其他安装媒介)变为安装系统(叫做初始化分区)。因此叫作change root或chroot。

完成chroot有三个步骤:

使用chroot将根位置从/(在安装媒介里)更改成/mnt/gentoo/(在分区里)
使用source命令将一些设置(那些在/etc/profile中的)重新载入到内存中
更改主提示符来帮助我们记住当前会话在一个chroot环境里面。

chroot /mnt/gentoo /bin/bash   
source /etc/profile           #profile 是系统关于环境参数的变量设定 
export PS1="(chroot) $PS1"    #PS1变量是命令提示字符,就是我们按完enter后再次出现的字符

echo "Asia/Shanghai" > /etc/timezone  #更改/添加时区

# 配置地区 
# 地区不只是指定系统应该使用的与系统进行交互的语言,同时也指定了字符串排序,日期和时间的显示等规则。

sed -i 's/#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' /etc/locale.gen  

#复制上面的命令把/etc/locale.gen文件 en_US.UTF-8 UTF-8 前面的#去掉

locale-gen    #运行locale-gen,它将生成/etc/locale.gen文件中指定的所有地区。
env-update && source /etc/profile && export PS1="(chroot) $PS1"

#执行上面这条命令再次更新系统环境,我们可以通过set这个命令可以查看当前系统环境所有变量

swapon /dev/sda1    #将虚拟内存打开,避免编译软件时物理内存不足,造成编译失败

通过以上几步,我们基本完成了gentoo系统的配置,接下来我们进行最重要的一步,那就是安装kernel,严格来说Linux只是一个kernel。

1.7 安装kernel

没有kernel,系统就没法启动,更不要说运行。可能你会问:我们并没有安装kernel,为什么现在我们可以运行系统? 其实,我们是用了liveCD里面的kernel,chroot进入的gentoo环境也是因为LiveCD里有编译好kernel,也因为有这个kernel,LiveCD才能提供一个miniLinux的环境。

在以往,kernel编译和安装是最难的一步,不过在gentoo里,可以通过genkernel这工具用来自动化生成并安装Linux内核,简单到傻瓜化。

1. 下面我们学习一下手动安装kernel

手动配置内核经常被Linux用户认为是最困难的步骤。事实并非如此——但是当您手动配置几次内核之后,你就不会再觉得它有多么难了:)
无论如何,有一件事是真实的:当手动配置内核时,了解(硬件)系统是至关重要的。大多数信息可以通过安装包含lspci命令的sys-apps/pciutils来收集:

emerge –ask sys-apps/pciutils #这条命令用来安装pciutils

除此之外还可以运行lsmod来查看安装CD使用什么内核模块,它可能对启用什么提供了一个好的暗示。

首先我们得下载kernel的源代码:

emerge –ask sys-kernel/gentoo-sources

下面是一个关于内核配置的连接:
内核配置指导

因为Linux内核配置有很多很多的章节,所以在这里就不再讨论了。

2. 真正方便的安装方法是genkernel all

手动配置的确很麻烦,但通过手动配置无疑能对硬件有更深的认识,亦能初步了解kernel的架构。

genkernel的方法很简单,它是将所有的硬件驱动,用到的不用到的都编译成模块,在系统启动时动态检测计算机需要用到的驱动,然后再加载。

emerge --ask sys-kernel/genkernel    #安装genkernel软件
genkernel all   #自动编译和安装kernel

kernel安装好后,linux系统算是初步安装完毕,接下来进行几项系统配置。

1.8 系统配置

1. /etc/fstab

这个文件是linux系统关于硬盘分区挂载的配置文件
文件记录分区挂载点(挂在哪个目录下),分区的格式,分区的挂载属性(是否可以读写)等等

#通过下面的方法编辑/etc/fstab文件,加入我们要挂载的硬盘: 

cat > /etc/fstab <<eof
/dev/sda2   /   xfs    noatime    0   1
/dev/sda1   swap  swap defaults   0   0
eof

# 'cat >' 的意思是把标准输出输入 '>' 后面的文件; '<<eof' 的意思是输入'eof'结束输出

# fstab 共有六个字段
#第一个字段是对分区的描述,也就是设备文件的路径
#第二个字段是分区挂载点,也就是分区应该挂载到的地方
#第三个字段给出分区所用的文件系统
#第四个字段给出的是挂载分区时mount命令所用的挂载选项。由于每个文件系统都有自己的挂载选项,我们建议你阅读#mount手册(man mount)以获得所有挂载选项的列表。多个挂载选项之间是用逗号分隔的。
#第五个字段是给dump使用的,用以决定这个分区是否需要dump。一般情况下,你可以把该字段设为0(零)。
#第六个字段是给fsck使用的,用以决定系统非正常关机之后文件系统的检查顺序。根文件系统应该为1,而其它的应该#为2(如果不需要文件系统自检的话可以设为0)。

2. 网络信息

nano -w /etc/conf.d/hostname     #nano是一个简易编辑器,需要按ctrl+x退出

# 设置主机名变量,选择主机名
nano -w /etc/conf.d/net 

# 复制下面几行到shell,设置ip地址和路由
cat > /etc/conf.d/net <<eof
config_eth0="192.168.1.2 netmask 255.255.255.0 brd 192.168.0.255"
routes_eth0="default via 192.168.1.1"
eof

#注意上面的eth0是网卡接口名,可能有别于eth0,先用ifconfig看看

ifconfig | head -n 1| cut -d ':' -f 1 

#用上面这条命令可以输出第一个网卡接口名,如果不是eth0,就用它把eth0替换掉

cd /etc/init.d
ln -s net.lo net.eth0
rc-update add net.eth0 default

#这三条命令可以让eth0在电脑启动时自动启动,记得用你的网卡名替代eth0.

passwd    #敲入这个命令设置root密码,请记着你所设置的密码。

3.安装bootloader

我们在硬盘分区时提到boot loader, 它是用来引导操作系统启动的,所以boot loader一般是安装在硬盘的第一块空间上-MBR,如果以GPT方式记录分区的,boot loader也是需要安装到硬盘第一块区间上的。

Boot loader有很多选择,针对不同的BIOS,有另一种BIOS叫UEFI(Unified Extensible Firmware Interface),它是配合GPT来使用。不同的BIOS有不同的boot loader选择,GRUB2支持目前所有的BIOS,所以我们选择GRUB2 作为系统的Bootloader。

GRUB2安照很简单,通过下面这条命令就可以完成安装

emerge –ask sys-boot/grub:2

安装好GRUB2,需要配置使它能进入工作状态,下面这条命令是把GRUB2放到MBR的头部中。

grub2-install /dev/sda

下面的命令则是配置GRUB2的,它会自动寻找编译好了的kernel,生成配置文件。

grub2-mkconfig -o /boot/grub/grub.cfg

4. 安装完毕

经过一番折腾,Linux安装完毕,reboot!

你可能感兴趣的:(linux,计算机)