Linux 学习笔记 1 使用最小的系统,从分区安装系统开始
我们常用的linux系统在安装过程中大多都省略了对系统进行分区的操作,以至于后期,不了解什么是分区以及分区当中最基本的一些概念,
我们不说最细的知识,只求了解这个过程,那直接步入正题,开始第一节的学习。
开始准备
Linux 系统镜像一个 这里我选择的是 TinyCore Linux 最小的linux发行版,很适合喜欢捣腾的人
虚拟机一个 这里采用Oracle VM BOX 开源免费的一款虚拟机 很好用 http://mirrors.163.com/tinycorelinux/
当然,这里我们选择仅有10M大小的发行版linux ,下载后开启虚拟机,进入画面,是不是很神奇,仅有10M大小的系统也有这么多功能,真乃
麻雀虽小五脏俱全
现在运行起来的Linux 就好比一个Live 版本的Linux 对其进行的操作都是不会被保存的,我们需要的是,对这里的虚拟硬盘进行格式化,而后安装系统
最后在虚拟机上在没有光盘ISO文件的时候也可以顺利进行启动系统。
分区开始
开始分区之前有必要了解一下关于硬盘分区的一些小知识,通常我们在安装系统的时候,都会碰到的关键字有:
主分区
逻辑分区
扩展分区
这里画一个图给大家理解下,我们就用大家们最熟悉的Windows为例,
一块硬盘我们在分区的时候,它会被分成主分区和拓展分区,而拓展分区里面又会包含逻辑分区,
主分区:一般用于存放系统的引导文件
拓展分区:拓展分区不能直接使用,它就好比是逻辑分区的一个盒子,用来存放逻辑分区
逻辑分区:大量的数据才是放在逻辑分区上的。
fdisk 分区维护命令
首先尝试使用 fdisk -l 展示已经存在的磁盘
这里大致翻译一下:
Disk 硬盘 挂载在 /dev/sda 下 总共大小是:8192MB 85******* 字节 16***** sectors(扇区)
1044 个磁柱(cylinders) 255 个磁面 63扇面
Units 单位:是扇区sectors 一个扇面大小是 1* 512 = 512个字节
这里我们知道了已经存在一个 /dev/sda 的硬盘信息,大小为8192MB 大致是8GB左右,显示未分区,开始尝试分区
fdisk /dev/sda
这里的选项大致了解一下:加粗的部分为常用类型
m :显示菜单和帮助信息
a :活动分区标记/引导分区
d :删除分区
l :显示分区类型
n :新建分区
p :显示分区信息
q :退出不保存
t :设置分区号
v :进行分区检查
w :保存修改
x :扩展应用,高级功能
选自:https://www.runoob.com/linux/linux-comm-fdisk.html
通过P命令,查看当前磁盘的分区情况,我们发现没有分区存在。
通过n命令 开始创建一个新的分区,P表示是主分区,而后通过1-4输入分区的编号,
关于分区编号的知识:简单提一下
在 Linux 中,每一个硬件设备都映射到一个系统的文件,对于硬盘、光驱等 IDE 或 SCSI 设备也不例外。Linux把各种 IDE 设备分配了一个由 hd 前缀组成的文件;而对于各种 SCSI 设备,则分配了一个由 sd 前缀组成的文件。
对于ide硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是指ide硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个ide硬盘上的第三个主分区或扩展分区,hdb2表示为第二个ide硬盘上的第二个主分区或扩展分区。对于scsi硬盘则标识为“sdx~”,scsi硬盘是用“sd”来表示分区所在设备的类型的,其余则和ide硬盘的表示方法一样,不在多说。
在 Linux 中规定,每一个硬盘设备最多能有 4个主分区(其中包含扩展分区)构成,任何一个扩展分区都要占用一个主分区号码,也就是在一个硬盘中,主分区和扩展分区一共最多是 4 个。
Linux 规定了主分区(或者扩展分区)占用 1 至 16 号码中的前 4 个号码。以第一个 IDE 硬盘为例说明,主分区(或者扩展分区)占用了 hda1、hda2、hda3、hda4,而逻辑分区占用了 hda5 到 hda16 等 12 个号码。
因此,Linux 下面每一个硬盘总共最多有 16 个分区。
引用:https://blog.csdn.net/yimenglin/article/details/87966367
在分区之前我们需要简单一下,一般的一个linux由几个部分构成吧
分区划分
一般分区划分在安装一个系统前是尤为重要的事情,我分配几个挂载点,每个挂载点多大,以及最基础的三个分区呢?
/boot 分区 一般作为引导分区,字面意思就是:引导这个系统的启动,一般大小200M
/swap 交换分区 这个可以理解为虚拟内存吧 一般设置为当前linux内存的2倍
/ 根目录挂载区 这个直接将剩余的硬盘可以全部分配给它
创建主分区
这里的n 命令代表的是创建分区
p代表的主分区 e 代表逻辑分区
分区编号1-4是主分区 和拓展分区
First sectos 代表就是起始扇区位置,这里直接点回车选择默认
Last sectos 当然就是结束位置,这里摁下回车直接默认
记得摁下 w进行保存 q不保存退出
格式化分区
mkfs.ext4
将指定分区格式化成ext4 分区格式,这与Windows 默认的NTFS 格式是一样的
重启机器
注意:重启命令只有在 root 权限下有用 在前面我们已经通过 sudo su 进行权限的提升
重启后可以发现出现了两个挂载点,sr0 是我们的ISO 文件挂载出的光盘,sda1 就不用说了,就是我们分区后的硬盘
mount 命令挂载
具体参考:https://www.runoob.com/linux/linux-comm-mount.html
Linux mount命令是经常会使用到的命令,它用于挂载Linux系统外的文件。
下面命令的意思是:将/dev/sda1 分区挂载到 /mnt/sda1 下面
这里我们可以直接进行挂载,而不用指定/dev 文件夹下面的,其实是一样的
挂载后,顺利的可以看到挂载点下面存在的文件
连接网络,安装grub
通过ping 命令连接百度后发现网络通畅
修改国内镜像源
网易镜像站:http://mirrors.163.com/tinycorelinux/
参考:http://mirrors.163.com/.help/tinycorelinux.html
更改源为国内的源后,下载速度就会快很多。
修改完成后 使用cat 命令进行查看
软件浏览器 tce-ab
键入tce-ab 命令后,即可出现如下界面,需要注意的是,这个命令不能使用root 身份进行打开
我们键入S后搜索grub
选择第一个 grub-0.97 xxxxxx 进行安装 摁下q 后接着摁下 i 进行安装
显示安装成功,
mkdir [-p] 在硬盘中创建boot 目录以及grub目录
当然,光盘作为一种可以启动的系统,它里面也是含有启动项的,我们现在需要把光盘里面的引导文件拷贝过来
拷贝安装grub 后的grub 引导库
我们刚才在软件商店安装了grub 现在需要将文件进行一个拷贝,放到硬盘的grub 文件目录下,
ls 命令
ls 命令用于列出指定路径下所有的子目录与文件 这就好比我们查看文件夹是一样的
当前情况下,我们有两个已经挂载好的目录,可以理解的像windows 里面的此电脑一样,打开后有CDEF盘(分区)
cp 拷贝命令
cp 命令用于文件的拷贝与文件夹的拷贝
具体参考:https://www.runoob.com/linux/linux-comm-cp.html
注意:需要使用root 权限,否则会出现:
这样的问题:如下
配置GRUB 菜单
简介:GNU GRUB(GRand Unified Bootloader简称“GRUB”)是一个来自GNU项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。
这就好比:我们现在需要构建一个菜单来告诉系统,如何加载我们的引导文件,这里我们就需要配置一个引导菜单文件
编辑挂载的sda分区下的menu.lst 文件,注意这是一个新建文件,
编辑默认值以及超时时间等,引导文件所在的位置,wq 进行保存
键入 sudo grub 命令后进入grub界面 我们安装刚才
键入根和分区号来选择根目录,打印出的是这个系统的文件类型 extf2 以及主分区类型 83 Linux
安装后 quiet 退出grub 菜单
关机后,取出虚拟机里面的光盘
重启系统后发现目录出现,安装成功
小结
使用Tinycore 进行分区以及挂载系统,并且通过简单的命令去安装GRUB 引导,为的就是了解一个linux 在启动过程中需要经过的一些过程
以及自己能够了解到对于分区以及挂载的一些基础知识,当然Tinycore 对于新手还是很不友好的,因为特别小 而且很多驱动不像Centos 一样完全
新手和难操作,当然,学习完后你发现自己对于分区以及GRUB 的引导有了一个简单的了解和认识的话,其实就已经足够了,其他的Linux的知识,
我们将通过Centos 进行讲解,因为Centos 在服务端还是特别常用的一款,盘他 就没错了
遇到的问题:
原因:估计是在分区的时候未全部分配,只分配了500M,没有分配全面导致在读取hd0的时候的问题
或者是复制grub 文件库的时候复制错误
参考:
https://www.cnblogs.com/yinheyi/p/7279508.html
http://forum.tinycorelinux.net/index.php?topic=797.0