导航:首页 > 编程系统 > linux系统定制

linux系统定制

发布时间:2023-11-26 12:26:27

『壹』 自己定制的linux系统没有apt-get,如何安装apt-get包

不是所有linux系统都用atp-get安装软件。
一般来说著名的linux系统基本上分两大类:
1.RedHat系列:Redhat、Centos、Fedora等
2.Debian系列:Debian、Ubuntu等
RedHat 系列
1 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数”
2 包管理工具 yum
3 支持tar包
Debian系列
1 常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数”
2 包管理工具 apt-get
3 支持tar包
一、yum安装。
yum安装常用软件的命令
#yum check-update
#yum remove 软件包名
#yum install 软件包名
#yum update 软件包名
yum命令常见使用方法
yum -y install 包名(支持*) :自动选择y,全自动
yum install 包名(支持*) :手动选择y or n
yum remove 包名(不支持*)
rpm -ivh 包名(支持*):安装rpm包
rpm -e 包名(不支持*):卸载rpm包
二、apt-get安装。
apt-cache search package 搜索软件包
apt-cache show package 获取包的相关信息,如说明、大小、版本
sudo apt-get install package 安装包
sudo apt-get install package --reinstall 重新安装包
sudo apt-get -f install 修复安装
sudo apt-get remove package 删除包
sudo apt-get remove package --purge 删除包,包括配置文件
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
apt-cache depends package 了解使用该包依赖那些包
apt-cache rdepends package 查看该包被哪些包依赖
sudo apt-get build-dep package 安装相关的编译环境
apt-get source package 下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理无用的包
sudo apt-get check 检查是否有损坏的依赖

『贰』 如何定制linux

花钱找人做吧。或者自己找资料:

debian 最简安装,之后安装必须的软件,保证你的 debian 不超过 500M (超过了也没事,Linux LiveCD 的制作软件会压缩你的系统程序的,一般 50% 的效果还是有的。)这个 Debian Linux 必须可以启动(符合能启动的要求……)

装好 debian 后找 syslinux ,它是一个制作 Linux liveCD 的解决方案。这个东西的教程网上很多,基本按照顺序照抄就行了。不过需要你自己编译内核,打开几个功能。或者需要几个特殊的操作。这些需要你小心谨慎的制作。

建议在虚拟机里面进行操作,这样随时查资料方便。
-----------------
从内核编译?这个不是从 0 开始的人能做的。我怀疑是你没有上课,导致你根本不知道老师已经讲过。或者这科根本就可以忽略。(中国的计算机课程学习,Linux 都是可以忽略的课程)
如果你真想做:

看 LFS 。之后 LFS 做好基础系统,再看 BLFS 。BLFS 写了怎么安装里面的软件。
http://www.linuxfromscratch.org/
LFS 和 BLFS 都在这个网站。 read online 就行了。

之后再看 http://www.linux-live.org/
这里是一个 Linux liveCD 制作工具。

资料嘛。 LFS 的中文只有 6.1.1 的, LFS 最新的资料是 6.3 版。当然旧版版也能打到目的。BLFS 貌似只有英文版。
live 的资料也一样只有英文的,不过这个东西字少翻字典来得及。

『叁』 Linux系统启动及定制过程

CentOS的启动流程总体顺序如下:

POST --> Boot Sequence --> bootloader(MBR) --> Kernel --> 加载rootfs --> switchroot --> /sbin /init --> (配置文件:/etc/inittab, /etc/init/*.conf) --> 根据init配置文件设置默认运行级别 --> 运行系统初始化脚本/etc/rc.d/rc.sysinit,完成系统初始化 --> 开启或关闭用户选定的对应运行级别下所对应的服务 --> 启动终端,打印登录提示符。

注:前面加粗部分代表内核空间的系统启动流程,后面未加粗部分代表用户空间的系统启动流程。

第一步:硬件启动过程

POST加电自检

主要实现的功能是检测各个外围硬件设备是否存在而且能够正常运行起来,实现这一自检功能的是固化在主板上的ROM(主要代表为CMOS)芯片上的BIOS(Basic Input/Output System)程序;例如BIOS会检测CPU、Memory以及I/O设备是否能够正常运行,如果是个人计算机的话可能还会检测一下显示器。只要一通电,CPU就会自动去加载ROM芯片上的BIOS程序,是这样来实现的。而检测完成之后就进行硬件设备的初始化。

选择启动设备以加载MBR

主要实现的功能是选择要启动的硬件设备,选择了之后就可以读取这个设备上位于MBR里头的bootloader了。这一步的实现是这样的:根据BIOS中对启动顺序的设定,BIOS自己会依次扫描各个引导设备,然后第一个被扫描到具有引导程序(bootloader)的设备就被作为要启动的引导设备。

MBR(Main Boot Record),是硬盘的0柱面,0磁道、1扇区(第一个扇区),称为主引导扇区,也称为主引导记录。它由三部分组 成:主引导程序(BootLoader)、硬盘分区表DPT(Disk Partition table)和硬盘有效标志(55AA)。
注:硬盘默认一个扇区大小为512字节。
第一部分,主引导程序(BootLoader)占446个字节,负责从活动分区中装载,并运行系统引导程序。
第二部分,硬盘分区表DPT占64个字节,有4个分区表项,每个分区表项占16个字节,硬盘中分区有多少以及每一个分区的大小都记 录在其中。
第三部分,硬盘有效标志,占2个字节,固定为55AA。如果这个标志位0xAA55,就认为这个是MB

第二步:GRUB引导阶段

不同的系统有不同的主引导程序(BootLoader)。Windows使用的是NTLDR(NT Loader,Windows NT系列操作系统)、Bootmgr(Boot Manager,Windows Vista,7,8,10),Linux一般使用的是grub(也叫grub legacy)和grub2。GRUB程序加载执行并引导kernel(内核)程序,其中有三个阶段,Grub引导阶段的文件都在/boot/grub/目录下。

stage1: 这一阶段执行的就是系统安装时预先写入到MBR的Bootloader程序,即是存放在MBR的前446字节里的程序。它的任务仅是读取(加载)硬盘的0柱面,0磁道,2扇区的内容(/boot/grub/stage1)并执行。

stage1.5: 这一阶段是Stage1阶段和Stage2阶段的桥梁,功能是加载stage2所在分区的文件系统驱动,让stage1中的bootloader能识别stage2所在分区的文件系统,此后grub程序便有能力去访问/boot/grub/stage2。

stage2: 这一阶段读取并解析grub的配置文件/boot/grub/grub.cnf,根据配置文件加载内核镜像到内存中,通过initrd程序建立虚拟根文件系统,最后调用(转交)内核。

第三步:内部引导阶段

加载内核,核心开始解压,启动一些最核心的程序。为了让内核足够的轻小,硬件驱动并没放在内核文件里面。系统仅探测可识别到的所有硬件设备,加载硬件驱动程序,即加载真正的根文件系统所在设备的驱动程序(有可能会借助于ramdisk加载驱动),以只读方式挂载根文件系统,运行用户空间的第一个应用程序:/sbin/init。

第四步:init初始化阶段(系统初始化阶段)

虽然CentOS 5、CentOS 6以及CentOS 7的/etc/init配置文件内容各不相同,但总体的启动流程相同:/sbin/init --> 根据/etc/inittab配置文件设置默认运行级别 --> 运行系统初始化脚本/etc/rc.d/rc.sysinit,完成系统初始化 --> 关闭或启动用户选定的默认运行级别所对应的服务 。

对于CentOS 5来说,初始化程序init是SysV init,其配置文件为:/etc/inittab; 对于CentOS 6来说,初始化程序init是upstart,其配置文件为:/etc/inittab, /etc/init/ .conf,也就是upstart将配置文件拆分成多个,在/etc/init/目录下以conf结尾的都是upstart风格的配置文件,而/etc/inittab仅用于设置默认运行级别; 对于CentOS 7来说,初始化程序init是systemd,其配置文件:/usr/lib/system/systemd/, /etc/systemd/system/

具体执行过程:/sbin/init程序会读取/etc/inittab文件确认运行级别,然后执行/etc/rc.d/rc脚本,根据确认的运行级别启动对应/etc/rc.d/rc#.d/目录下的服务(#为0~6),与此同时执行系统初始化脚本/etc/rc.sysinit(软链接,指向/etc/rc.d/rc.sysinit),还会加载/etc/rc.local(软链接,指向/etc/rc.d/rc.local文件)用户自定义服务(脚本)。

CentOS7中初始化进程变为了systemd,systemd即为system daemon,是Linux下的一种init软件,开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell系统开销的效果,最终代替现在常用的System V与BSD风格的init程序。与多数发行版使用的System V风格的init相比,systemd采用了以下的新技术:A.采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能;B.用Cgroup代替PID来追踪进程,即使是两次fork之后生成的守护进程也不会脱离systemd的控制。

第五步:启动终端

根据前面获取的运行级别来启动终端,mingetty程序是用于启动终端的,它会调用登录程序login,这样就能显示出登录提示符了,类似mingetty这种用于打开终端的程序还有getty等。而如果默认运行级别为5,则会打开图形界面。

第一步:硬件启动过程

这一步和CentOS6差不多,详细请看1.1内容。

第二步:GRUB引导阶段

从这一步开始,CentOS6和CentOS7的启动流程区别开始展现出来了。CentOS7的主引导程序使用的是grub2,执行过程是先加载boot.img、core.img两个镜像,再加载MOD模块文件,把grub2程序加载执行,接着解析配置文件/boot/grub/grub.cfg,根据配置文件加载内核镜像到内存,之后构建虚拟根文件系统,最后转到内核。

CentOS7中使用命令进行配置,而不直接去修改配置文件了。grub.cfg配置文件开头注释部分说明了由/etc/grub.d/目录下文件和/etc/default/grub文件组成。改好配置后都需要使用命令grub2-mkconfig -o /boot/grub2/grub.cfg,将配置文件重新生成。

第三步:内部引导阶段

这一步与CentOS6也差不多,加载驱动,切换到真正的根文件系统,唯一不同的是执行的初始化程序变成了/usr/lib/systemd/systemd。

第四步:init初始化阶段(系统初始化阶段)

CentOS7中我们的初始化进程变为了systemd。执行默认target配置文件/etc/systemd/system/default.target(这是一个软链接,与默认运行级别有关)。然后执行sysinit.target来初始化系统和basic.target来准备操作系统。接着启动multi-user.target下的本机与服务器服务,并检查/etc/rc.d/rc.local文件是否有用户自定义脚本需要启动。最后执行multi-user下的getty.target及登录服务,检查default.target是否有其他的服务需要启动。

注意:/etc/systemd/system/default.target指向了/lib/systemd/system/目录下的graphical.target或multiuser.target。而graphical.target依赖multiuser.target,multiuser.target依赖basic.target,basic.target依赖sysinit.target,所以倒过来执行。

unit对象:unit表示不同类型的systemd对象,通过配置文件进行标识和配置;文件中主要包含了系统服务、监听socket、保存的系统快照以及其他与init相关的信息。(也就是CentOS6中的服务器启动脚本)

第五步:启动终端

systemd执行sysinit.target
systemd启动multi-user.target下的本机与服务器服务
systemd执行multi-user.target下面的/etc/rc.d/rc.local
Systemd执行multi-user.target下的getty.target及登录服务
getty.target是启动终端的systemd对象。如果到此步骤,系统没有指定启动图形桌面,到此就可以结束了,如果需要启动图形界面,要在此基础上启动桌面程序。

从 CentOS 7 版本之后,系统开始用 systemd 实现init进程,系统启动和服务器守护进程管理器功能,负责在系统启动或运行时,激活系统资源,服务器进程和其它进程。

unit表示不同类型的systemd对象,通过配置文件进行标识和配置;文件中主要包含了系统服务、监听socket、保存的系统快照以及其它与init相关的信息。

3.2 system unit文件格式

/usr/lib/systemd/system:发行版打包者使用,每个服务最主要的启动脚本设置,类似于之前的/etc/init.d/

/etc/systemd/system:系统管理员和用户使用,管理员建立的执行脚本,类似于/etc/rcN.d/Sxx的功能,比上面目录优先运行

/lib/systemd/system::ubutun的对应目录

/run/systemd/system:系统执行过程中所产生的服务脚本,比上面目录优先运行

unit 格式说明:

service unit file文件通常由三部分组成:

Unit段的常用选项:

Service段的常用选项:

Install段的常用选项:

注意:对于新创建的unit文件,或者修改了的unit文件,要通知systemd重载此配置文件,而后可以选择重启。

首先在启动界面按e编辑启动参数,

将ro参数更改为rw init=/sysroot/bin/sh,按ctr + x启动系统

按下图执行命令更改root密码

『肆』 我想装Linux系统 该怎么弄啊

分类: 电脑/网络 >> 操作系统/系统故障
解析:

大部分初学者都是在有XP之后装Linux的,下面以我的分区作例子来说明,我的分区情况是:

主分区 C NTFS /dev/hda1 4 GB

扩展分区 /dev/hda2

D NTFS /dev/hda5 10 GB

E NTFS /dev/hda6 30 GB

F FAT32 /dev/hda7 3 GB

/boot ext3 /dev/hda8 40 MB

/ ext3 /dev/hda9 8.5GB

/home ext3 /dev/hda10 1 GB

/swap swap /dev/hda11 256MB(和你内存一样或1倍到2倍之间,我的内存就是256MB)

(注:后面四个分区都是属于扩展分区,用来装Linux)

1、将下载下来的ISO文件放在格式为FAT32分区的根目录下(如F:\),名称保持一致.(如:shrike-i386-disc1.iso shrike-i386-disc2.iso shrike-i386-disc3.iso);

2、用UltraISO之类的工具将disc1中的dosutils目录提取出来,放在同一个根目录下(如路径为F:\dosutils);

3、重启机器,设置BIOS从软盘启动后插入MS-DOS盘,或其它可引导盘;

4、进入dosutils目录,运行其中的autoboot.bat文件(输入autoboot即可);

5、这时出现的是安装界面的语言;选什么随便你,看得懂就好,呵呵;

6、接下来叫你选择键盘类型,你的是什么就选什么,一般默认就好;

7、然后出现的界面是选择安装方法,当然是选择:硬盘驱动器;

8、然后选择分区(这每个人的分区不同,所以不一定相同),就举我的例子,我是把那三个镜像文件和dosutils放在F盘的根目录下,所以选择/输入:/dev/hda7即可;

9、之后安装就开始初始化了,在这一步,一般可以正确识别显示器、显卡和鼠标。之后就开始以文本模式开始安装(只能以文本模式安装);

10、接下来出现的提示是选择鼠标类型,根据自己的鼠标选择吧,很简单的(为什么有些人装完后鼠标不能识别,我真觉得很神奇:O);

11、然后选择安装类型,选择:定制

12、之后就进入磁盘分区设置了。第一次安装可以选择让Linux自动分区,安全、省事。我选择:DiskDruid,因为想看看它长什么样,呵呵;

13、进入DiskDruid之后,屏幕上就显示了你目前的分区状况,你可以对它们进行编辑。以我的分区状况为例,在这里,我要为/boot、/、/home分别设置挂载点:/boot、/、/home。注意两个问题,1,挂载点要小写,不然单独的/boot和/home分区会被挂载/BOOT、/HOME文件夹中,达不到预期效果(至于为什么要设单独分区,请参阅相关主题);2,在编辑“/”的挂载点时,也许会出现警告框,请大胆地选择“强行添加”,没有问题的。最后编辑SWAP分区,确定后选择格式化SWAP区就行;

14、引导装载程序配置,我选择:GRUB(推荐新手使用,因为很简单)之后的两个引导装载程序配置全部跳过,不进行修改;

15、之后到了引导分区设置,在这里可以设置“引导标签”,即在机器启动时,出现在GRUB中选项的名称(WINDOWS操作系统在GRUB中默认显示为DOS,你可以在这里把“DOS”改成“WINXP”等字样);

16、选择安装引导程序的位置:选择MBR;

17、etho的网络配置:大体分为使用DHCP和不使用DHCP(这是我个人理解方式,呵呵)因为我不是使用DHCP的,所以按空格键把“使用bootp/dhcp”前面的“*”号去掉,选择“引导时激活”,然后输入IP地址、子网掩码、默认网关以及主、次DNS(和XP中的数值一样);

18、之后可以设置主机名,随便你设

19、是防火墙规则,个人认为没有必要设高。我是选择:定制,然后在WWW(HTTP),邮件(SMTP)和FTP处安空格打上“* ”就好(这样设置之后,浏览网页就没有问题);

20、语言支持,这是多选项哦,按选多少选多少,但是别忘了中文和英文哦;

21、默认语言,我建议选:USA(就算不懂E文也好),因为默认为英文的话,在Shell下不会出现乱码,看着舒服,安装后又可以改默认语言,怕啥呢;

22、时区,上海,北京,,,,,选吧随便;

23、设置根口令,看你喜欢;

24、验证配置:请在“使用屏蔽口令”和“启用MD5口令”前加上“*”(选中它们);

25、选择软件包:翻到最后一行,看到:Everything 没有?选吧,等啥,只要选上这个,以后的初级问题基本上不会出现哦。如果空间不足,请务必尽量选上所有开发工具及相关内容,可以避免安装后编译软件出现问题;

26、开始安装..........享受不用换盘的Linux安装吧

PS:在安装的过程中,可以按ALT+FX(FX是指F2、F3、、、F6),有东西看哦,是安装的摘要,如果有出现WARNING之类的词,把它记下来,也许会有用哦。按F1可以回到安装界面。

就这样,如果安装所有软件包,大约1小时后,你就可以“享受”Linux了。(知道“”的意思吗?嘿嘿)

我这样安装之后没有任何系统问题哦!

1、画面偏移:

大部分人安装完后出现的第一个问题就是画面偏移的问题。当然,这可以通过显示器上的按钮来调

整,可是如果是和XP双系统的话,那每次都调可就麻烦了。解决办法很简单,下个显卡驱动,在X

桌面的虚拟终端键入“init 3”来关闭X桌面,到终端下安装就OK了。如果是NVIDIA的显卡,在安

装后,用VI之类的编辑器编辑/etc/X11/XF86Config文件,把该文件中Driver “nv”中的nv改

成nvidia即可,然后运行startx

启动X系统,画面就正常了。

2、mount分区,可以显示中文文件名的:

mount -t vfat -o codepage=936,iocharset=cp936 /dev/hda7 /mnt/win

(其中的vfat、hda7、win根据每个人的系统可以改变。936和cp936有的是用gb2312,不过在我

的系统中就不行)

想要让分区在系统启动时自动挂载,则要用vi 等编辑器编辑/etc/fstab,在该文件的末尾加入:

例如:/dev/hda7 /mnt/win vfat auto,codepage=936,iocharset=cp936 0 0 类似的语段

即可。

3、中文字体初步美化:

凡是刚接触Redhat系列的新手打开Mozilla的第一个反应一般都是字体模糊的让眼睛想流泪,其实

解决方法也不难,以下是本人的经验,希望对大家有帮助:

首先在你的Linux中要有simsun.ttf这个字体文件(可以在WINDOWS中找到,也许找到的是

simsun.ttc,直接把它改成simsun.ttf就行。把它弄到Linux中有两个方法,一个是mount,还有一

个是在你用ln -s 建立连接,用后面一个方法可以节省空间,前提是放字体的那个分区在Linux启动

时要自动挂载);之后在/usr/share/fonts/default目录下建立一个文件夹,名为:myttf,然后将

simsun.ttf文件用cp拷贝到/usr/share/fonts/default/myttf下,这样就可以用ttmkfdir >

fonts.dir来生成字体列表。如果要保证列表的完整性,则需要

将/usr/X11R6/lib/X11/fonts/encodings/下的encodings.dir这个文件拷贝

到/usr/share/fonts/default/myttf之后再执行ttmkdir > fonts.dir命令。这时就已经把

simsun字体装入系统了。然后要做的是用vi 打开/etc/X11/XF86Config,在其中的

Section "Files"部分加入:FontPath "/usr/share/fonts/defaults/myttf"这句话,最好放在

原先那个FontPath语句的前面。然后在Section "Mole"部分加入 Load "xtt"和

Load "GLcore",并且在 Load "freetype"和Load "type1"前面加上"#"用以屏蔽它们,因为

它们不能和"xtt"共存。接下来要改的是/etc/gtk/中的gtkrc.zh_CN这个文件,把里面的fontset

部分的后半部,即"\"后面的内容改为"-misc-simsun-medium-r-normal--16-*-*-*-*-*-

gb2312.1980-0,*-r-*",最后打开/etc/gnome/中的gtkrc.zh_CN里的所有Fontset部分全部改

为"-misc-simsun-medium-r-normal--14-*-*-*-*-*-gb2312.1980-0",这是在GNOME中

的改法。如果是KDE,则在KDE的K菜单―选项―个人化―国家和语言选择中国、字库

zh_CN.gb2312。在K菜单―选项―观感―字体项中选则你想要的字体就可以了(我没用过)。最

后注销重启GNOME就搞定了。

有两点需要注意:

LINUX的分区一般用EXT3,在安装过程中,安装程序会要求你选择安装的目标路径(就是目标盘了)此时有两个知识点就是分区格式,选择EXT3,还有一个叫:SWAP,SWAP我也不懂什么,我理解为:相当于虚拟内存,用来加载一些系统的东东,假设你要安装到F盘上,F盘空间为10G=20480MB,没错吧:) 那么你在分区时就要根据你的内存大小,假设你的内存为256M,那么你就要给这个盘分一个叫SWAP的东东,空间为256*2=512,其实剩下全部给EXT3

另外,在LINUX下对硬盘的分区是这样认识的,他所示显示的方式跟WIN不一样,

如果你有两个硬盘:他会显示为:第一个硬为hda,第二个当然是hdb,如果第一个硬盘有三个分区,那么每个分区则显示为hda1,hda2,hda3,假设第二个硬盘也有两个分区,则显示为hdb1,hdb2,吼吼吼

『伍』 如何定制小型的linux系统,具体的步骤,谢谢了

系统启动过程
1、加电自检(POST代码)
2、boot loader
GRUB -- /boot/grub/grub.conf
kernel
initrd.img
3、INIT
/sbin/init ----- /etc/inittab
/etc/rc.d/rc.sysinit
/etc/rc.d/rc RUNLEVEL
/etc/rc$runlevel.d/S* start
/etc/rc$runlevel.d/K* stop
/etc/X11/prefdm

4、登录
文本 login
图形 gdm/kdm
自制一个U盘系统
准备工作:在真实机中把yum配置好
[root@localhost /]# ls /mnt/Server/ 这是软件包所处的目录
[root@localhost /]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
rhel-debuginfo.repo
[root@localhost yum.repos.d]# cp rhel-debuginfo.repo pg.repo
[root@localhost yum.repos.d]# vim pg.repo
[root@localhost yum.repos.d]# cat pg.repo
[rhel-server]
name=Red Hat Enterprise Linux
baseurl=file:///mnt/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

1、准备U盘,并分区,格式化成ext3(可选)文件系统[root@localhost pg]# fdisk -l
[root@localhost pg]# fdisk -l
Disk /dev/sda: 4003 MB, 4003463168 bytes
84 heads, 20 sectors/track, 4654 cylinders
Units = cylinders of 1680 * 512 = 860160 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 5 4655 3905600 c W95 FAT32 (LBA)

[root@localhost pg]# fdisk /dev/sda

The number of cylinders for this disk is set to 4654.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): d
Selected partition 1

Command (m for help): p

Disk /dev/sda: 4003 MB, 4003463168 bytes
84 heads, 20 sectors/track, 4654 cylinders
Units = cylinders of 1680 * 512 = 860160 bytes

Device Boot Start End Blocks Id System

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-4654, default 1):
Using default value 1
Last cylind[root@localhost pg]# mount -t ext3 /dev/sda1 /neter or +size or +sizeM or +sizeK (1-4654, default 4654):
Using default value 4654

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@localhost pg]# partprobe /dev/sda
[root@localhost pg]# ls /dev/sda1
/dev/sda1
--------------
[root@localhost pg]# mkfs.ext3 /dev/sda1

2、挂载U盘,并把相关文件拷到U盘中
[root@localhost pg]# mount -t ext3 /dev/sda1 /net

把/目录树结构在u盘创建好
]# yum --installroot=/net -y install filesystem

/boot
这个目录应该有vmlinuz-x.x.x initrd-x.x.x.img
/boot/grub
这个目录中应该有grub的相关文件
grub还要安装到u盘的首扇区中(grub-install)
/bin /sbin /lib /usr/lib
这些个目录下应该有一些命令和库文件
bash ls cp mv
mount
ifconfig
fdisk
mkfs.ext3

基本上你需要的程序比较多,大概有以下一些常用的:
coreutils setup grub vim-enhanced
vim-common gpm perl iptables
openssh openssh-clients
mole-init-tools iputils grep awk sed
procps tar bash gcc make rp-pppoe
passwd libuser e2fsprogs util-linux
net-tools SysVinit kernel

-----------------------
a.关于vmlinuz文件:
]# cp /boot/vmlinuz-2.6.18-194.el5 /net/boot/
b.关于initrd.img文件: 为了包含u盘的驱动,需要手动生成initrd.img(包含usb-storage)
]# modinfo -F filename usb-storage

]# mkinitrd --with=usb-storage /net/boot/initrd-usb-2.6.18-194.img `uname -r`
c. 使用此命令grub-install将grub安装到u盘的首扇区中
grub-install 需要安装grub软件包生成
]# yum --installroot=/net -y install grub
]# grub-install /dev/sda 最后执行这一步,还有一些必要工作没做

d. ]# cat /net/boot/grub/grub.conf
default=0
timeout=5
title RHEL5U5 usb linux for pg
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-194.el5 ro root=/dev/sda1
initrd /boot/initrd-usb-2.6.18-194.img

e. 为了生成以下这些常用的命令,装包
bash ls cp mv
mount
ifconfig
fdisk
mkfs.ext3

yum bash ls cp mv
mount
ifconfig
fdisk
mkfs.ext3
yum --installroot=/net -y install coreutils setup grub vim-enhanced vim-common gpm perl iptables openssh openssh-clients mole-init-tools iputils grep awk sed procps tar bash gcc make rp-pppoe passwd libuser e2fsprogs util-linux net-tools SysVinit kernel pam

f.在U盘系统启动的时候,需要读fstab文件,挂载文件系统
]# cp /etc/fstab /net/etc

]# vim /net/etc/fstab
]# cat /net/etc/fstab
/dev/sda1 / ext3 defaults 0 0

开始安装GRUB程序
]# chroot /net/
bash-3.2#
]# chroot /net/
bash-3.2# grub-install /dev/sda
Probing devices to guess BIOS drives. This may take a long time.
No suitable drive was found in the generated device map. 这个错误意味着需要去写devices.map文件
bash-3.2# ls /dev/sda
ls: /dev/sda: 没有那个文件或目录
bash-3.2# ls /dev/sda1
ls: /dev/sda1: 没有那个文件或目录
bash-3.2# mknod /dev/sda b 8 0
bash-3.2# mknod /dev/sda1 b 8 1
bash-3.2# cat /etc/mtab
/dev/sda1 / ext3 rw 0 0
bash-3.2# cat /boot/grub/device.map
(fd0) /dev/fd0
(hd0) /dev/sda

bash-3.2# grub-install /dev/sda
Could not find device for /dev/mapper/*
Could not find device for /dev/mapper/*
Could not find device for /dev/mapper/*
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.

(fd0) /dev/fd0
(hd0) /dev/sda

]# chroot /net/
bash-3.2# passwd root 修改密码不成功,将导致 u盘系统启动后,用root登录不成功。
Changing password for user root.
passwd: Authentication token manipulation error
解决方法:
vim /net/etc/passwd
root:*:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
这样再把root密码设置为你想要的!

检查 以下过程是否正确:
/boot/grub/grub.conf
/etc/inittab ---默认运行级别应该是3
/etc/fstab
/etc/passwd
/etc/shadow
pam程序包做验证的
ls /dev/sda /dev/sda1
]# chroot /net/
bash-3.2# passwd root 这一步必须能成功

---------------------------------------

[root@localhost pg]# rpm -q kernel-doc
kernel-doc-2.6.18-194.el5
[root@localhost pg]# gedit /usr/share/doc/kernel-doc-2.6.18/Documentation/devices.txt

『陆』 如何打造自己的 Linux 发行版

LFS 中文版手册发布:如何打造自己的 Linux 发行版

您是否想过打造您自己的 Linux 发行版?每个 Linux 用户在他们使用 Linux 的过程中都想过做一个他们自己的发行版,至少一次。我也不例外,作为一个 Linux 菜鸟,我也考虑过开发一个自己的 Linux 发行版。从头开发一个 Linux 发行版这件事情被称作 Linux From Scratch (LFS)。

在开始之前,我总结了一些有关 LFS 的内容,如下:
1. 那些想要打造他们自己的 Linux 发行版的人应该了解打造一个 Linux 发行版(打造意味着从头开始)与配置一个已有的 Linux 发行版的不同
如果您只是想调整下启动屏幕、定制登录页面以及拥有更好的外观和使用体验。您可以选择任何一个 Linux 发行版并且按照您的喜好进行个性化配置。此外,有许多配置工具可以帮助您。
如果您想打包所有必须的文件、引导加载器和内核,并选择什么该被包括进来,然后依靠自己编译这一切东西。那么您需要的就是 Linux From Scratch (LFS)。
注意:如果您只想要定制 Linux 系统的外表和体验,这个指南并不适合您。但如果您真的想打造一个 Linux 发行版,并且向了解怎么开始以及一些其他的信息,那么这个指南正是为您而写。
2. 打造一个 Linux 发行版(LFS)的好处
您将了解 Linux 系统的内部工作机制
您将开发一个灵活的适应您需求的系统
您开发的系统(LFS)将会非常紧凑,因为您对该包含/不该包含什么拥有绝对的掌控
您开发的系统(LFS)在安全性上会更好
3. 打造一个Linux发行版(LFS)的坏处
打造一个 Linux 系统意味着将所有需要的东西放在一起并且编译之。这需要许多查阅、耐心和时间。而且您需要一个可用的 Linux 系统和足够的磁盘空间来打造 LFS。
4. 有趣的是,Gentoo/GNU Linux 在某种意义上最接近于 LFS。Gentoo 和 LFS 都是完全从源码编译的定制的 Linux 系统
5. 您应该是一个有经验的Linux用户,对编译包、解决依赖有相当的了解,并且是个 shell 脚本的专家。
了解一门编程语言(最好是 C 语言)将会使事情变得容易些。但哪怕您是一个新手,只要您是一个优秀的学习者,可以很快的掌握知识,您也可以开始。最重要的是不要在 LFS 过程中丢失您的热情。
如果您不够坚定,恐怕会在 LFS 进行到一半时放弃。
**6. 现在您需要一步一步的指导来打造一个 Linux 。LFS 手册是打造 LFS 的官方指南。我们的合作站点 tradepub 也为我们的读者制作了 LFS 的指南,这同样是免费的。 ###
您可以从下面的链接下载 Linux From Scratch 的电子书:

下载: Linux From Scratch
7. 当前 LFS 的版本是 7.7,分为 systemd 版本和非 systemd 版本。
LFS 的官方网站是: http://www.linuxfromscratch.org/
您可以在官网在线浏览 LFS 以及类似 BLFS 这样的相关项目的手册,也可以下载不同格式的版本。
LFS (非 systemd 版本):
PDF 版本: http://www.linuxfromscratch.org/lfs/downloads/stable/LFS-BOOK-7.7.pdf
单一 HTML 版本: http://www.linuxfromscratch.org/lfs/downloads/stable/LFS-BOOK-7.7-NOCHUNKS.html
打包的多页 HTML 版本: http://www.linuxfromscratch.org/lfs/downloads/stable/LFS-BOOK-7.7.tar.bz2
LFS (systemd 版本):
PDF 版本: http://www.linuxfromscratch.org/lfs/downloads/7.7-systemd/LFS-BOOK-7.7-systemd.pdf
单一 HTML 版本: http://www.linuxfromscratch.org/lfs/downloads/7.7-systemd/LFS-BOOK-7.7-systemd-NOCHUNKS.html
打包的多页 HTML 版本: http://www.linuxfromscratch.org/lfs/downloads/7.7-systemd/LFS-BOOK-7.7-systemd.tar.bz2
8. Linux 中国/LCTT 翻译了一份 LFS 手册(7.7,systemd 版本)
经过 LCTT 成员的努力,我们终于完成了对 LFS 7.7 systemd 版本手册的翻译。
手册在线访问地址:https://linux.cn/lfs/LFS-BOOK-7.7-systemd/index.html 。
其它格式的版本稍后推出。
感谢参与翻译的成员: wxy, ictlyh, dongfengweixiao, zpl1025, H-mudcup, Yuking-net, kevinSJ 。

关于:Linux From Scratch
这本手册是由 LFS 的项目领头人 Gerard Beekmans 创作的, Matthew Burgess 和 Bruse Dubbs 参与编辑,两人都是LFS 项目的联合领导人。这本书内容很广泛,有 338 页之多。
手册中内容包括:介绍 LFS、准备构建、构建 LFS、建立启动脚本、使 LFS 可以引导,以及附录。其中涵盖了您想知道的 LFS 项目中的所有东西。
这本手册还给出了编译一个包的预估时间。预估的时间以编译第一个包的时间作为参考。所有的东西都以易于理解的方式呈现,甚至对于新手来说也是这样。
如果您有充裕的时间并且真正对构建自己的 Linux 发行版感兴趣,那么您绝对不会错过下载这个电子书(免费下载)的机会。您需要做的,便是照着这本手册在一个工作的 Linux 系统(任何 Linux 发行版,足够的磁盘空间即可)中开始构建您自己的 Linux 系统,付出时间和热情。
如果 Linux 使您着迷,如果您想自己动手构建一个自己的 Linux 发行版,这便是现阶段您应该知道的全部了,其他的信息您可以参考上面链接的手册中的内容。
请让我了解您阅读/使用这本手册的经历,这本详尽的 LFS 指南的使用是否足够简单?如果您已经构建了一个 LFS 并且想给我们的读者一些建议,欢迎留言和反馈。
BLFS阶段,startx后firefox等程序中文全部乱码问题的解决 http://www.linuxidc.com/Linux/2007-05/3789.htm
用LFS从零开始构建完整Linux系统 http://www.linuxidc.com/Linux/2011-08/40706.htm
基于Ubuntu 10.10 构建LFS 6.7[图文] http://www.linuxidc.com/Linux/2011-02/32545.htm
via: http://www.tecmint.com/create-custom-linux-distribution-from-scratch/
作者:Avishek Kumar 译者:wwy-hust 校对:wxy
本文由 LCTT 原创翻译

阅读全文

与linux系统定制相关的资料

热点内容
vc修改文件名 浏览:149
linux65从域 浏览:321
用什么东西压缩文件 浏览:406
怎么删除ipad隐藏的APP 浏览:981
编程如何占用大量内存 浏览:116
多个excel表格文件如何组合 浏览:918
ubuntu内核升级命令 浏览:679
pgp文件夹 浏览:894
一键还原的文件是什么格式 浏览:581
女汉子微信名霸气十足 浏览:65
win10手机蓝屏修复 浏览:419
windows2008激活工具 浏览:259
g71的编程应注意什么 浏览:572
文件路径不符合是什么意思 浏览:543
qq如何换绑微信绑定 浏览:67
文件包下载的安装包在哪里 浏览:811
90版本升级不送 浏览:186
工具箱英文 浏览:382
南翔嘉定编程课哪里好 浏览:853
win10改变文件格式 浏览:475

友情链接