gentoo 安装
加载完光驱后
1进行ping命令查看网络是否通畅
2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois)
parted -a optimal /dev/sda
(parted)print 命令查看是否有除了sda其他分区 如果有则删除 (parted)rm 2(2为分区的编号,有其他的也需要一并删除)
(parted)
mklabel gpt
此操作会清除掉所有分区上的所有数据 如果是MBR 则使用命令mklabel msdos(此命令创建的主分区最多为4个)
(parted)
unit mib 告诉parted制定长度的单位为兆
(parted)
mkpart primary 1 3 从硬盘的第1M地址到第3M的地址
(parted)
name 1 grub 命名为grub
(parted)
set 1 bios_grub on 设置flags为bios_grub
(parted)
print 查看修改后的信息
然后创建boot引导分区 128M
(parted)
mkpart primary 3 131
(parted)
name 2 boot
(parted)
mkpart primary 131 643
(parted)
name 3 swap
(parted)
mkpart primary 643 -1
(parted)
name 4 rootfs
如果用的是UEFI去引导的分区 需要标识下boot分区为EFI(通常64位机器上都是UEFI)
(parted)
set 2 boot on
quit 退出
这个时候后我们看ls /dev/sda* 就会出来五个结果
4分区已经建好了,下面一步需要在分区上挂文件类型
btrfs 功能强大但是不稳定
ext2 启动慢且没有文件日志系统
ext3 文件日志系统增强,可靠
ext4 推荐的通用所有平台文件系统
f2fs 被外界认为不成熟 但是在gentoo的usb、microSD 卡和其他基于闪存的存储来说是个不错的选择
JFS IBM的高性能日志记录文件系统
ReiserFS 处理许多小文件的成本小,比其他文件系统维护成本大
XFS 对硬件问题的兼容性较小
vfat 不支持任何权限设置。它主要是用于与其他操作系统的互操作性(主要是Microsoft Windows)但也是必需的一些系统固件(如UEFI)。
NTFS 只用于与微软Windows系统的互操作性
当我们使用ext2, ext3, ext4 的文件系统用在一个小于8G的分区上时,我们得设置增加一个计算节点数量计算的选项
ex2时 使用root #
mkfs.ext2 -T small /dev/<device>
ex3或ex4时 使用root #
mkfs.ext2 -j -T small /dev/<device>
这通常会生成四倍的节点量(从16kb到4kb)可通过root #
mkfs.ext2 -i <ratio> /dev/<device>调节比例
我们这里使用ext4和ext2
处理文件系统的工具 sys-fs/e2fsprogs已经存在于系统设置中,因此我们一句命令即可解决
root #
mkfs.ext2 /dev/sda2 将boot引导为sda2
然后可以看到我们的节点的信息变为31232,算下来122M,这就是当时我们建的128M,然后4k一个节点
root #
mkfs.ext4 /dev/sda4 将root设置为sda4
接下来初始化swap交换空间 root #
mkswap /dev/sda3 然后激活交换空间
root #
swapon /dev/sda3
分区和文件类型都已经搞好了,接下来就是挂载到目录上去
root #
mount /dev/sda4 /mnt/gentoo
挂载boot引导分区的时候,我们要创建一个挂载目录
root #
mkdir /mnt/gentoo/boot
root #
mount /dev/sda2 /mnt/gentoo/boot
root #
chmod 1777 /mnt/gentoo/tmp
root #
date 121513162016 表示2016年12月15号13点16分root #
ntpd -q -g 时区设置在下面给出
root #
export http_proxy="http://proxy.server.com:port"
root #
export ftp_proxy="http://proxy.server.com:port"
root #
cd /mnt/gentoo目录
root #
links https://www.gentoo.org/downloads/mirrors/ 去浏览下载 如果有代理则root #
links -http-proxy proxy.server.com:8080 https://www.gentoo.org/downloads/mirrors/
root #
lynx https://www.gentoo.org/downloads/mirrors/ 但它不是菜单驱动的。
root #
tar xvjpf stage3-*.tar.bz2 --xattrs 提取文件 x提取 v显示过程 j使用bzip2解压缩 p保存权限 f指定解压缩的是文件而非标准输入 --xattrs为了根据扩展的属性存储到对应的文件文档里
root #
nano -w /mnt/gentoo/etc/portage/make.conf 打开配置文件,影响Portage和GCC编译器
# Use the same settings for both variables
CXXFLAGS="${CFLAGS}"
8、安装gentoo基础系统
获取镜像途径1、portage会使用make.conf里的GENTOO_MIRRORS 变量来获取镜像列表。也可以使用mirrorselect工具root #mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
2、第二个获取镜像的途径是通过配置文件/etc/portage/repos.conf/gentoo.conf来获取gentoo仓库。首先创建文件夹root #
mkdir /mnt/gentoo/etc/portage/repos.conf
复制dns配置到本地确保网络链接
然后复制gentoo仓库的文件到这里root #
cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
root #
cp -L /etc/resolv.conf /mnt/gentoo/etc/
因为环境改变,所有需要挂载一些必要的文件
root #
mount -t proc proc /mnt/gentoo/proc
root #
mount --rbind /sys /mnt/gentoo/sys
root #
mount --make-rslave /mnt/gentoo/sys
root #
mount --rbind /dev /mnt/gentoo/dev
root #
mount --make-rslave /mnt/gentoo/dev
后面两个目录是绑定挂载。--make-rslave为了支持下面的安装
更改根目录在新环境中root #
chroot /mnt/gentoo /bin/bash 根目录改变从/改变到/mnt/gentoo
root #
source /etc/profile 将设置生效
root #
export PS1="(chroot) $PS1" 主提示符更改,为帮助我们记住这个会话在chroot环境中。
现在所有的更改都在新的环境中去了
配置Portage
root #
emerge-webrsync
安装Portage快照
上面命令会更新Portage tree24小时外的快照,如果想更新时间近点的,可使用emerge --sync可获取更新一小时前的Portage tree
更新完如果提示有需要更新的items,可使用
root #
eselect news list
root #
eselect news read
选择配置文件安装
root #
eselect profile list 可用来查看配置文件列表
为了使用纯净的64位环境,可使用no-multilib 配置项root #
eselect profile set 11 (
default/linux/amd64/13.0/no-multilib选项前缀数字) 这个会比较小,包比较少
USE="-gtk -gnome qt4 kde dvd alsa cdr"(如果想要禁用所有缺省的选项,则-*) 设置时区
不过我选的时系统去判断选项root #eselect profile set default/linux/amd64/13.0/systemd 这个会比较大 包比较多
root #emerge --ask --update --deep --newuse @world 配置USE变量
USE变量很有用,决定了程序编译哪些是支持的,哪些是不支持的。如gnome gtk -kde -qt4 编译项目的时候,用GNOME (and GTK) 支持,不支持KDE (and Qt)
配置的详细信息root #
less /usr/portage/profiles/use.desc 按q退出
如果你想修改USE,则用命令root #nano
-w /etc/portage/make.conf
如启用KDE-based系统,支持DVD, ALSA 和 CD 录音
root #
ls /usr/share/zoneinfo
root #
echo "Asia/Shanghai" > /etc/timezone
en_US ISO-8859-1
root #
emerge --config sys-libs/timezone-data
配置本地化
root #
nano -w /etc/locale.gen
en_US.UTF-8 UTF-8
zh_CN GB18030
zh_CN.GBK GBK
zh_CN.GB2312 GB2312
zh_CN.UTF-8 UTF-8
root #
locale-gen 使其生效
9、安装source
root #
eselect locale list 查看环境列表
root #
eselect locale set 10 选择环境
root #
env-update && source /etc/profile && export PS1="(chroot) $PS1" 配置生效
安装Linux kernel
root #
emerge --ask sys-kernel/gentoo-sources
root #
ls -l /usr/src/linux 安装完后会有符号链接到linux内核中去
然后开始编译安装linux内核 1、手动根据手册进行配置 2、利用genkernel自动编译安装 为了优化环境我们使用手动
root #
emerge --ask sys-apps/pciutils 合并相关帮助信息
root #
cd /usr/src/linux 进去内核目录
root #
make menuconfig 菜单模式查看
现在开始配置gentoo内核,配置内核有几个好处1,更加灵活2,内核更小3,更短的编译时间4,学习5,严重的无聊6,不少的内核配置知识7,完全控制
大多数有三种选项,一种是什么都不创建,一种是创建内核目录,一种是创建模块。用户自己可以决定加载或不加载什么模块。
创建在内核中需要固件支持,所以在内核的配置文件中要FW_LOADER=y和
CONFIG_FIRMWARE_IN_KERNEL=y这两个或者菜单选项中
Device Drivers --->
Generic Driver Options --->
-*- Userspace firmware loading support
[*] Include in-kernel firmware blobs in kernel binary
一般默认就是对的。
SATA的支持在linux中是链接到libata的,在SCSI子系统下面。所以,SATA驱动在SCSI驱动配置文件选项下。系统的存储设备被当做SCSI的设备。 SCSI disk/cdrom的支持也是必须的。
第一个SATA硬盘被标记为/dev/sda,第一个SATA CD/DVD驱动被标记为 /dev/sr0
Device Drivers --->
SCSI device support --->
<*> SCSI device support //我这边显示的是--*--
<*> SCSI disk support
<*> SCSI CDROM support [ ] SCSI low-level drivers ---> <*> Serial ATA and Parallel ATA drivers (libata) --->
tips:非标准的驱动放在Serial ATA and Parallel ATA drivers (libata)下的SCSI low-level drivers中
USB的配置,xHCI支持usb3.0也兼容USB 1.0, 1.1, 2.0, 3.0 EHCI支持USB2.0 1.x的我们基本已经不使用了。
Device Drivers --->
USB support --->
<*> Support for Host-side USB
--- USB Host Controller Drivers
<*> xHCI HCD (USB 3.0) support
<*> EHCI HCD (USB 2.0) support
< > OHCI HCD (USB 1.1) support
< > UHCI HCD (most Intel and VIA) support
多个处理器,超线程和多核系统的配置
Processor type and features --->
[*] Symmetric multi-processing support
[*] SMT (Hyperthreading) scheduler support
[*] Multi-core scheduler support (NEW)
Power management and ACPI options --->
[*] ACPI (Advanced Configuration and Power Interface) Support
压缩内核模块
首先我们得在USE配置里添加对压缩模块的支持,在USE(/etc/portage/make.conf)里添加
USE后面加上“lzma tools zlib debug doc static-libs python3_5”
root #
emerge --ask --oneshot --changed-use sys-apps/kmod 然后执行这条指令去开启model压缩,还需要选择一条压缩的
root #
cd /usr/src/linux
root #
make menuconfig
Enable loadable module support --->
[*] Compress modules on installation
Compression algorithm () --->
<X> GZIP
XZ
内核的配置文件通常在/usr/src/linux/.config或者自动生成在 /proc/config.gz 文件中,但是首先得把这些配置文件关联到内核中去
首先输入命令make menuconfig,然后按/键搜索,搜索CONFIG_TMPFS_XATTR会显示很多信息
Symbol: TMPFS_XATTR [=n] 代表内核配置入口是否可以被搜索得到,为n的时候,表明该设置未被启用
Type: boolean 代表该搜索是一个布尔值 enabled disabled
Prompt: Tmpfs extended attributes make menuconfig入口里的文本,控制.config文件里的变量TMPFS_XATTR
Depends on: TMPFS [=y]CONFIG_TMPFS
必须被启用才能看到这个,这里已经启用了,(
所以
[=y]),如果不是这样,请先启用CONFIG_TMPFS.
Location: ... make menuconfig 结构设置的位置,这个设置为了Tmpfs extended属性
Selected by: TMPFS_POSIX_ACL [=n] && TMPFS [=y] 如果两个选项都为y,CONFIG_TMPFS_XATTR会自动启用而不会停止启用
有了上面的信息,可以较容易的翻译任何CONFIG_*文件,简单来说,每个用户必须
1、启用Depends
2、导航到Location:
对应的目录
3、开关Prompt的值
查看一些问题的命令
root #
uname -v 可以查看引导内核编译的时间
ls -l /usr/src/linux/arch/i386/boot/bzImage 硬盘上的内核镜像最后一次编译的时间
devtmpfs
devtmpfs 的功用是在 Linux 核心 启动早期建立一个初步的 /dev,令一般启动程序不用等待 udev,缩短 GNU/Linux 的开机时间。
Device Drivers --->
Generic Driver Options --->
[*] Maintain a devtmpfs filesystem to mount at /dev
[ ] Automount devtmpfs at /dev, after the kernel mounted the rootfs
然后去文件系统,然后选择你使用的文件系统的支持。不要编译使用在root文件系统中充当module的文件系统。Gentoo系统无法挂载这个partition。
File systems --->
(Select one or more of the following options as needed by your system)
<*> Second extended fs support
<*> Ext3 journalling file system support
<*> The Extended (ext4) filesystem
<*> Reiserfs support
<*> JFS filesystem support
<*> XFS filesystem support
...
Pseudo Filesystems --->
[*] /proc file system support
[*] Virtual memory file system support (former shm fs)
如果使用PPPoE 或 拨号上网,需要如下设置
Device Drivers --->
Network device support --->
<*> PPP (point-to-point protocol) support
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
大多数系统有多核处理,所以对于支持Symmetric multi-processing也很重要。
Processor type and features --->
[*] Symmetric multi-processing support
在多核系统中,每个核心算作一个处理器。然后添加usb支持(如键盘和鼠标)
Device Drivers --->
[*] HID Devices --->
<*> USB Human Interface Device (full HID) support
因为我们分区用的是GPT模式,所以我们要启用GPT的支持
-*- Enable the block layer --->
...
Partition Types --->
[*] Advanced partition selection
...
[*] EFI GUID Partition support
10、配置已经完成现在可以进行编译安装了
root #
make && make modules_install //进行编译
编译完成后,把进行复制到 /boot/中去
root #
make install //复制镜像到boot中去,System.map文件和内核配置文件
文件系统信息
在Linux下,所有在系统中的分区都必须列出在/etc/fstab,该文件包含这些分区的挂载点,以及他们用哪些特殊的选项去挂载(自动与否,是否用户可以挂载他们)。
创建fstab文件
该文件里的数据每行有六个字段,用空格隔开,每个字段都有他们的意思。1、设备文件的路径 2、挂在点 3、分区所挂载的文件系统 4、挂载的时候使用的选项,逗号分割 5、分区在需要的时候是否可以被废弃 6,文件系统是否需要自检
root #
blkid 可以检查Labels和UUIDs
root #
nano -w /etc/conf.d/hostname 可以修改host文件
root #
nano -w /etc/conf.d/net 域名修改
11、配置网络
之前网络配置是为了在安装的时候配置的,现在我们需要在环境中去配置网络。
所有网络的配置信息都聚集在/etc/conf.d/net。详细的解释在/usr/share/doc/netifrc-*/net.example.bz2中可以查看。
首先安装gentoo网络接口netifrc
root #
emerge --ask --noreplace net-misc/netifrc
默认使用DHCP,需要安装DHCP客户端。
静态ip地址如下
config_eth0="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255"
routes_eth0="default via 192.168.0.1"
dhcp配置如下
config_eth0="dhcp"
在boot期间自动开启网络
如果想要在boot阶段启用网络接口,需要在默认运行级别中添加
root #
cd /etc/init.d
root #
ln -s net.lo net.eth0
root #
rc-update add net.eth0 default
如果有多个网络接口,需要像我们创建net.eth0一样去创建其他的net.*文件
root #
nano -w /etc/rc.conf
root #
nano -w /etc/conf.d/keymaps
root #
emerge --ask app-admin/sysklogd
root #
rc-update add sysklogd default
root #
emerge --ask sys-process/cronie
root #
rc-update add cronie default
root #
crontab /etc/crontab
root #
emerge --ask sys-apps/mlocate
root #
rc-update add sshd default
root #
nano -w /etc/inittab
# SERIAL CONSOLES
s0:12345:respawn:/sbin/agetty 9600 ttyS0 vt100
s1:12345:respawn:/sbin/agetty 9600 ttyS1 vt100
Filesystem | Package |
Ext2, 3, and 4 | sys-fs/e2fsprogs |
XFS | sys-fs/xfsprogs |
ReiserFS | sys-fs/reiserfsprogs |
JFS | sys-fs/jfsutils |
VFAT (FAT32, ...) | sys-fs/dosfstools |
Btrfs | sys-fs/btrfs-progs |
root #
emerge --ask net-misc/dhcpcd
root #
emerge --ask --verbose sys-boot/grub:2
root #
echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf)
然后
root #
emerge --ask --update --newuse --verbose sys-boot/grub:2 去重新计算World set (Portage)的依赖。
root #
grub-install /dev/sda
root #
grub-install --target=x86_64-efi --efi-directory=/boot
root #
grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.16.5-gentoo
Found initrd image: /boot/initramfs-genkernel-amd64-3.16.5-gentoo
done 输出中必须要至少有一个linux镜像被找到。这些是引导系统的必要条件。
14重新启动系统
退出chrooted环境,卸载所有已挂载的分区。然后输出一个神奇的命令:reboot
root #
exit
cdimage ~#
cd
cdimage ~#
umount -l /mnt/gentoo/dev{/shm,/pts,}
cdimage ~#
umount -R /mnt/gentoo
cdimage ~#
reboot
15用户管理
直接使用root被认为是危险的,下面是各个用户组的对应的功能
Group | Description |
audio | Be able to access the audio devices. |
cdrom | Be able to directly access optical devices. |
floppy | Be able to directly access floppy devices. |
games | Be able to play games. |
portage | Be able to access portage restricted resources. |
usb | Be able to access USB devices. |
video | Be able to access video capturing hardware and doing hardware acceleration. |
wheel | Be able to use su. |
16硬盘清理
删除tarballsroot #
rm /stage3-*.tar.bz2*
gentoo 安装的更多相关文章
- 开始使用gentoo linux——gentoo安装笔记(下)
gentoo安装笔记(下) 上一章,已经对操作系统安装做了充分准备,并且已经从livecd(u盘系统)切换进入了gentoo安装环境中. 不过现在才是真正的开始!打起精神!这可不是在装ubuntu! ...
- 开始使用gentoo linux——gentoo安装笔记(上)
gentoo linux安装笔记(上) 家里有一台破旧的富士通笔记本,08年至今质量依然杠杠的,但是性能已经不能和现代超极本同日而语,装上了ubuntu更是不敢恭维,别提gnome和kde的linux ...
- Gentoo安装配置过程与总结
前些时间在VMware上安装了Gentoo Linux,用了当前最新版的Gentoo,安装过程记录下来了,但一直没有整理到blog上.今天重新整理一下,写出来与大家分享和备用.接触Gentoo不久,对 ...
- Gentoo安装
Gentoo Linux安装详解--根据官方WiKi整理 时间:2014-06-26 06:37:54 阅读:549 评论:0 收藏:0 [点我收藏+] 标签: ...
- fedora下体验gentoo安装
服务器上安装了fedora,但是对gentoo很想体验一番,没有新机器,不想重装系统,所以只能chroot来体验getoo了. 下载portage-20130817.tar.bz2和stage3-am ...
- Gentoo安装详解(五)-- 安装X桌面环境
安装X桌面环境: 安装Xorg: 检测显卡信息: dmesg | grep video lspci | grep -i VGA 配置INPUT_DEVICE.VIDEO_CARDS变量: 在安装Xor ...
- Gentoo安装详解(三)-- 配置系统
配置系统 系统信息: 文件系统信息: 创建/etc/fstab nano -w /etc/fstab 网络信息: Host name, Domainname, etc nano -w /etc/con ...
- Gentoo安装详解(一) -- 安装基本系统
前期准备 远程登录: 开启ssh服务: /etc/init.d/sshd start 设置密码: passwd 以便使用putty.ssh client远程登录上传stage等(有时在线下载很慢,而局 ...
- Gentoo安装详解(二)-- 编译内核
编译内核: 安装内核源码: 选择内核:如gentoo-sources emerge gentoo-sources ls -l /usr/src/linux 手动编译内核: cd /usr/src/li ...
随机推荐
- Connect() 2016 大会的主题 ---微软大法好
文章首发于微信公众号"dotnet跨平台",欢迎关注,可以扫页面左面的二维码. 今年 Connect 大会的主题是 Big possibilities. Bold technolo ...
- Entity Framework 6 Recipes 2nd Edition 译 -> 目录 -持续更新
因为看了<Entity Framework 6 Recipes 2nd Edition>这本书前面8章的翻译,感谢china_fucan. 从第九章开始,我是边看边译的,没有通读,加之英语 ...
- js获取给定月份的N个月后的日期
1.在讲js获取给定月份的N个月后的日期之前,小颖先给大家讲下getFullYear().getYear()的区别. ①getYear() var d = new Date() console.log ...
- ASP.NET Core的路由[4]:来认识一下实现路由的RouterMiddleware中间件
虽然ASP.NET Core应用的路由是通过RouterMiddleware这个中间件来完成的,但是具体的路由解析功能都落在指定的Router对象上,不过我们依然有必要以代码实现的角度来介绍一下这个中 ...
- [原] KVM虚拟机网络闪断分析
背景 公司云平台的机器时常会发生网络闪断,通常在10s-100s之间. 异常情况 VM出现问题时,表现出来的情况是外部监控系统无法访问,猜测可能是由于系统假死,OVS链路问题等等.但是在出现网络问题的 ...
- JavaScript 正则表达式语法
定义 JavaScript定义正则表达式有两种方法. 1.RegExp构造函数 var pattern = new RegExp("[bc]at","i"); ...
- jQuery标准的AJAX模板
$('#saveInformationTemplate_button').on('click', function(){ if(isEmpty($("#name").val())) ...
- Oozie分布式任务的工作流——Spark篇
Spark是现在应用最广泛的分布式计算框架,oozie支持在它的调度中执行spark.在我的日常工作中,一部分工作就是基于oozie维护好每天的spark离线任务,合理的设计工作流并分配适合的参数对于 ...
- 清除打印机队列中无法清除的任务 & 清空打印池
故障现象典型表现为以下两种情况 1.当打印任务开始进行时,这些打印任务便被保存在打印作业列表(也称打印队列)内.如果打印机因意外暂停(如打印机未连接)而未完成打印任务,则该打印任务将列入打印队列,并且 ...
- 不要着急改代码,先想想--centos 6.8下编译安装tmux
诸位读者新年好,2017开年第一篇博客,请允许我先问候一下看到这篇博客的诸位.写博客是我2017年定下的目标之一,希望我会坚持下去. 最近打算尝试一下tmux这个神器,于是有了这一篇关于思维方式的Bl ...