开始使用gentoo linux——gentoo安装笔记(上)
gentoo linux安装笔记(上)
家里有一台破旧的富士通笔记本,08年至今质量依然杠杠的,但是性能已经不能和现代超极本同日而语,装上了ubuntu更是不敢恭维,别提gnome和kde的linux发行版了,于是我决定为他安装上十分精简的gentoo,如需了解gentoo请自行百度百科“gentoo”
下载gentoo:
https://www.gentoo.org/downloads/
下载mini cd和stage3即可,一共500M左右
使用ultraiso或者usbwriter把gentoo的iso写入u盘
ultraiso-》启动-》写入硬盘映像
写完后,u盘仍然可以使用,把下载的stage3也放进去,安装时要用到
进入u盘系统
开机进入boot menu(每台电脑都不一样,F12居多),选择u盘
livecd——启动的过程基本都是enter默认即可
连接wifi(使用的是笔记本)
使用命令:
ifconfig
不同电脑的有线无线设备名称都不同,大部分是"eth0"和"wlan0"
使用命令:(中间的无线设备名称是刚刚ifconfig获得的,不同电脑不一样,请注意,你的可能不是wlp12s0)
ifconfig wlp12s0 up #启动设备
iwconfig wlp12s0 power on #启动电源管理(可选)
扫描WIFI,使用命令:
iwlist scan
可以看到扫出来一大堆东西,每一个wifi都以call num开头,call 01是我要连接的wifi
下面有一些重要的信息,essid就是wifi的名,IE那一行显示了wifi的加密方式
我路由器使用的是wpa(当前大部分的路由器都是这个加密,安全!),需使用“wpa_supplicant”命令连接:
在这之前配置一下wpa_supplicant,linux配置文件都在/etc中,
wpa_supplicant在“/etc/wpa_supplicant/”
需要在这个目录下添加“wpa_supplicant.conf”
编辑:
network={
ssid="Xiaomi_devil"
psk=""
priority=1
}
分别是:wifi名,密码,最后一个默认1
保存退出,进行连接:
wpa_supplicant -i wlp12s0 -c /etc/wpa_supplicant/wpa_supplicant.conf
传统的wpe连接起来更简单,直接连接:
[root@FriendlyARM /]# iwconfig wlan0 essid "FRIENDLY-ARM"
[root@FriendlyARM /]# iwconfig wlan0 key s:12345
(摘自网络博客http://blog.chinaunix.net/uid-28790518-id-5072334.html,详情百度iwconfig连接wifi)
ping baidu.com
检测了一下网络连接情况,没问题
启动ssh
为了方便安装和查询中途遇到的过程,我们使用远程ssh方式
启动ssh服务,并修改root密码
service sshd start
passwd
在windows(putty)或者linux(ssh)连接到这台电脑
在这之前使用ifconfig查看清楚ip,远程时用
分区:
使用parted命令行程序,终端输入:parted
(parted)help,可以查看帮助
分区设置为GPT方式 (warning:会清除所有数据!):
(parted) mklabel gpt #使用gpt分区方式
首先,要告诉parted我们工作要使用的容量单位是megabytes(实际上是mebibytes,其标准缩写符号是MiB,但是我们会通篇使用MB因为它用得更普遍一些)
(parted) unit mib #以mb单位分区
现在我们创建一个2MB的分区,它后面将被GRUB2引导器使用。使用mkpart 完成这个操作,并且通知 parted 从1MB开始到3MB结束(创建一个大小为2MB的分区)。
(parted) mkpart primary 1 3
(parted) name 1 grub
(parted) set 1 bios_grub on
(parted) print
继续创建几个linux常用的分区,我创建了三个分区,分别是给:"/boot","/","/home"三个目录挂载用的,我的内存大,就不需要swap了。
(parted) mkpart primary 3 403
(parted) name 2 boot
(parted) mkpart primary 403 49999
(parted) name 3 rootfs
(parted) mkpart primary 49999 -1
(parted) name 4 home
当使用UEFI接口来引导系统时(取代BIOS),要将引导分区标识为EFI系统分区。当“boot”选项在这个分区被设置时,Parted可以自动完成此事。
(parted) set 2 boot on
创建文件系统
查看系统可用的格式化文件系统命令:
ls /sbin/mkfs.*
gentoo官方wiki有对各种文件系统的解释:
https://wiki.gentoo.org/wiki/Handbook:X86/Installation/Disks/zh-cn
使用mkfs命令格式化分区:
mkfs.ext2 /dev/sda2
注意:我的/dev/sda2对应的是boot
继续格式化home和rootfs分区
mkfs.ext4 /dev/sda3
mkfs.ext4 /dev/sda4
挂载
现在分区都已初始化并有文件系统,接下来该挂载那些分区了。
使用mount命令,但是不要忘记为每一个创建的分区创建需要的挂载目录。
这是官方wiki的描述,乍一看有点莫名,不过一步一步来做:
老习惯,先挂载一个"/"根目录:
mount /dev/sda3 /mnt/gentoo
好了,其实官方是说,提供的live cd镜像要用到的目录是/mnt/gentoo,将它作为根
那么其他的/boot /home呢,当然就在/mnt/gentoo/下面了,这可是根啊
所以
mkdir /mnt/gentoo/boot
mkdir /mnt/gentoo/home
挂载上去:
mount /dev/sda2 /mnt/gentoo/boot
mount /dev/sda4 /mnt/gentoo/home
注意:boot挂载到第二个分区sda2,刚刚”/“已经挂载在sda2了,剩下的home挂载在sda4
输入:mount
最后几行提示最终挂载的样子
后面的介绍中将挂载proc文件系统(一个内核的虚拟接口)和其它内核伪文件系统。不过我们首先安装Gentoo安装文件。
安装
安装stage包,在官网下载的stage3包刚刚一起放在了u盘里了
cd /mnt/cdrom
cp ./stage3-*.tar.bz2 ../gentoo/
拷贝到gentoo,也就是挂载在sda3上的根当中
解压:
cd /mnt/gentoo/
tar xvjpf stage3-*.tar.bz2
编辑编译配置文件:
vi /mnt/gentoo/etc/portage/make.conf
此文件用于gcc编译gentoo系统的一些优化配置,添加一行
MAKEOPTS="-j3"
-j后面是cpu核心+1,我的是intel core2双核,一般再+1是推荐的配置方式(其实没什么影响)
其他地方保持默认就行了,如果对gcc编译优化有一定的了解,请参考:
/mnt/gentoo/usr/share/portage/config/make.conf.example下的配置示例
编译前
gentoo的minimal cd与ubuntu,fedora等发行版不同,需要从头编译操作系统,包括linux的kernel,有很大的自由度,不过也复杂很多,庆幸的是大多数配置stage3默认已经很好了,只需要使用默认的配置,或者稍作调整即可。
通过编译的方式安装操作系统使我们对系统结构、原理更加清晰,也使得操作系统的性能和底层调用得到质变性提高。当然如果对内核和GNU工具有深入研究的话,还能大幅度提高编译和编译后系统的性能优化,在此不深入研究。
选择下载镜像,下载源码
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
请选择中国的镜像,并按下“空格键”选中(我看到的好像都是厦门的,http,ftp什么的都选上)
点击回车OK保存退出。
gentoo主仓库配置
如果没有下面这目录就执行下面的命令创建:
mkdir /mnt/gentoo/etc/portage/repos.conf
接下来,复制Portage提供的Gentoo仓库配置文件到这个(新创建的)目录:
cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
复制DNS信息
在进行新环境之前,还有一件要做的事情就是复制/etc/resolv.conf中的DNS信息。需要完成这个来确保即使进入到新环境后网络仍然可以使用。/etc/resolv.conf包含着当前网络中的DNS服务器。
要复制这个信息,建议通过cp命令的-L选项。这可以保障如果/etc/resolv.conf是一个符号链接的话,复制的是那个目标文件而不是这个符号文件自己。否则在新环境中,符号文件将指向一个不存在的文件(因为链接目标非常可能不会在新环境中)。
cp -L /etc/resolv.conf /mnt/gentoo/etc/
挂载必要的文件系统
稍等片刻,Linux的根将变更到新的位置。为了确保新环境正常工作,需要确保一些文件系统可以正常使用。
需要提供的文件系统是:
/proc/ 一个pseudo文件系统(看起来像是常规文件,事实上却是实时生成的),由Linux内核暴露的一些环境信息
/sys/ 一个pseudo文件系统,像要被取代的/proc/一样,比/proc/更加有结构
/dev/ 是一个包含全部设备文件的常规文件系统,一部分由Linux设备管理器(通常是udev)管理
/proc/位置将要挂载到/mnt/gentoo/proc/,而其它的两个都是绑定挂载。字面上的意思是,例如/mnt/gentoo/sys/事实上就是/sys/(它只是同一个文件系统的第二个条目点),而/mnt/gentoo/proc/是(可以说是)文件系统的一个新的挂载。
mount -t proc proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev
如果不是很理解上述文件系统挂载,按照上面做就行了
进入新环境
现在所有的分区已经初始化,并且基础环境已经安装,是时候进入到新的安装环境了。
这意思是会话将把根(所能访问到的最顶层位置)从当前的安装环境(安装CD或其他安装媒介)变为安装系统(叫做初始化分区)。因此叫作change root或chroot。
完成chroot有三个步骤:
- 使用chroot将根位置从/(u盘启动系统)更改成/mnt/gentoo/,就是进入刚刚我们布局的分区和挂载
- 使用source命令将一些设置(那些在/etc/profile中的)重新载入到内存中
- 更改主提示符来帮助我们记住当前会话在一个chroot环境里面(可选)。
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"
从现在开始,所有的动作将立即在新Gentoo Linux环境里生效。
接下来还要做很多事情,我们还没开始编译gentoo操作系统
开始使用gentoo linux——gentoo安装笔记(上)的更多相关文章
- 开始使用gentoo linux——gentoo安装笔记(下)
gentoo安装笔记(下) 上一章,已经对操作系统安装做了充分准备,并且已经从livecd(u盘系统)切换进入了gentoo安装环境中. 不过现在才是真正的开始!打起精神!这可不是在装ubuntu! ...
- Linux:Gentoo系统的安装笔记(三)
这期笔记将是gentoo安装的最后一期了,虽然已经配置内核了,但是也要完成剩下的安装步骤,这离安装完成已经不远了,继续加油!!! 如果中断了安装,请看第二期的笔记进行恢复安装,但请重新编译一次内核,否 ...
- Linux:Gentoo系统的安装笔记(一)
这次我选择安装Gentoo,用来做我学习的笔记.这次我是使用虚拟机安装Gentoo,一是方便操作,二是可以看着手册,一边看一边操作,严格按照手册上的步骤执行,一般是不会出现问题的. 查看手册最好学会看 ...
- Linux:Gentoo系统的安装笔记(四)
本来以为结束,谁知离正常的系统还是比较远,不过不放弃,这期的笔记我敢肯定是最后一期了,写了那么多我也觉得烦,被gentoo折磨烦了. 安装KDE桌面 选择正确的配置文件 先获取root权限来安装桌面环 ...
- Linux:Gentoo系统的安装笔记(二)
这期笔记继续安装Gentoo,上期我们已经到了可以进入新环境了,这意味着就是将原来的安装CD或其它介质改为硬盘上安装系统了,话不多说,马上开始! 恢复安装 由于我已经中断了安装,对于已经可以进入新环境 ...
- 轻量级linux CRUX安装笔记
感谢hrdd的分享,原文出处:http://wxdhrdd.blog.163.com/blog/static/120500564200952592240867/ 以下是对原文进行补充 crux的安装: ...
- CENTOS6 下MATLAB2014b的安装和破解(Matlab_R2014b linux版 安装笔记)
参考:http://www.jianshu.com/p/f0cefc737dda ①在下载matlab linux版.iso, ②在windows下用ULTRAISO软件提取 ③用crack中的ins ...
- Linux下安装lrzsz上传下载工具
使用yum安装 为什么要使用yum安装? 答:安装十分方便,几乎不需要别的操作,只需要一个yum命令就可以完成所有的安装过程. yum -y install lrzsz 要有网络才行 输入命令:rz ...
- Gentoo Linux 学习笔记1
Gentoo Linux是一个基于portage进行包管理的Linux发行版,最早版本始于2002年.其官方官网为http://www.gentoo.org 目前,Gentoo Linux已 ...
随机推荐
- @Autowired 注释对在哪里和如何完成自动连接提供了更多的细微的控制。
1.@Autowired 可以用在多个地方,在 setter 方法上,属性上 或者 带有多个参数的任意方法上. Setter 方法中的 @Autowired. 当 Spring遇到一个在 setter ...
- jeesite学习(一) common部分(1)
我们按照先细节后整体的方式来进行学习,即先了解各个包中包含的内容,再从整体上看各个包之间的关系. 0 common中的包 先看jeesite的common组件,common中共包含14个包(如下图), ...
- Java基础之路(四)--流程控制语句
本次我们来聊一聊Java当中的循环语句. 循环语句分三种:1.for2.while3.do--while. 三种循环语句的任务是不同的,方法也是不同的.当然他们各自的流程图也是不一样的. 3.1 wh ...
- javaList容器中容易忽略的知识点
在集合类框架中,List是使用比较多的一种 List |---Arraylist 内部维护的是一个数组,查找快增删慢 |---LinkedList 底层是链表,增删快查询慢. |---Vctor线程安 ...
- (22)Properties,这不会Io流中的类,但是通常和IO流中的一些流配合使用
可以和流相关联的集合对象Properties. Map |--Hashtable |--Properties Properties:该集合不需要泛型,因为该集合中的键值对都是String类型.既然是m ...
- TFS2017代码搜索功能
当团队或者公司的研发中心的代码库扩展到了一定程度,在代码库中查找一些需要的代码会变的比较困难.比如敏捷模式下的项目小组希望能够找到并重用其他小组开发的一些基础性的功能代码,我们通常需要去找当事人去询问 ...
- sass 学习
本来看了阮一峰和于江水两位老师的博客,有看了ionic自带的sass文件,原以为自己已经是很熟悉,精通了.可是我居然连ruby都不知道真实惭愧啊,辛亏看了www.sass.hk 我想这篇官方文档肯定 ...
- pcntl_fork 导致 MySQL server has gone away 解决方案
pcntl_fork 前连数据库,就会报 MySQL server has gone away 错误.原因是子进程会继承主进程的数据库连接,当mysql返回数据时,这些子进程都可以通过这个连接读到数据 ...
- 利用select实现伪并发的socket
使用socket模块可以实现程序之间的通信,但是server在同一时刻只能和一个客户端进行通信,如果要实现一个server端可以和多个客户端进行通信可以使用 1.多线程 2.多进程 3.select ...
- Jmeter-元件的作用域和执行顺序
Jmeter有8类可执行的元件,包括:逻辑控制器.配置元件.定时器.前置处理器.取样器.后置处理器.断言和监听器. 测试计划和线程组不属于元件. 1)取样器(Sampler):不与其他元件发生交互作用 ...