slax linux的定制
由于数据结构教学的需要,需要用到linux,要求就是小,启动快,可定制性强,恰好slax正好满足要求,以下就是定制slax linux的过程记录: 什么是SlaxSlax是一个基于Linux的Live操作系统。实时意味着它可以从外部媒体运行,而无需永久安装。Slax从USB大容量存储设备(例如闪存驱动器密钥)以及常规硬盘驱动器和CD / DVD光盘引导。只需插入设备并从中启动即可。整个Slax操作系统位于设备上的单个目录中 Slax提供的FluxBox窗口管理器已经针对最常见的任务进行了预配置。包括一个Web浏览器 从只读介质(例如CD / DVD)启动Slax时,它将所有系统修改仅保留在内存中,并且在重新引导时所有修改都将丢失。另一方面,如果从可写设备(例如USB闪存驱动器)运行Slax,则它可以在其中存储所有更改,因此即使您位于另一台计算机上,也可以在下次启动时恢复所有配置和修改。此功能称为“持久更改”,您可以在单独的章节中阅读有关此功能的更多信息。 ? 选择最佳的Slax架构(32位或64位)您可能已经注意到Slax可用于32位和64位处理器体系结构。32位版本旨在在非常老旧的计算机(与Intel 686一样古老;可追溯到1995年)上运行。它也可以在全新的计算机上正常运行,但是下载量更大。此外,还有一个限制,即单个应用程序只能寻址4GB的RAM。另一方面,64位版本较小,没有这种限制,它将在当今可用的大多数计算机上运行。因此,通常,如果您打算在非常古老的旧计算机上使用Slax,请选择32位。如果您打算在本世纪制造的机器上使用Slax,则最好选择64位。而且,如果您不知道目标硬件是什么, ? 运行Slax的系统要求
? Slax的源代码和许可证Slax是免费软件:您可以根据自由软件基金会发布的GNU通用公共许可(GPL)的条款,重新分发和/或修改它。分发Slax希望是有用的,但是没有任何担保;使用风险自负。GNU GPL许可证要求发布所有源代码,以便其他人可以重用,修改或从中学习。您可以相信我,这是一个非常好的主意-没有它,根本就不会有Slax。Slax本身与Debian共享大多数代码,Debian的源代码也可以公开获得。 CD / DVD上的Slax如果计划从CD或DVD光盘运行Slax,则需要将Slax作为ISO文件下载。实际上,ISO文件是CD的完整映像,因此您需要将其刻录到CD / DVD介质上。实际上,选择CD还是DVD都没关系,两者都可以工作。最重要的部分是您不能将其刻录为常规文件。那是行不通的。相反,您必须将其刻录为光盘映像。例如,在Windows 7中,只需右键单击ISO文件并选择 ? 在硬盘或USB闪存驱动器上安装Slax为了从硬盘驱动器或USB设备运行Slax,您需要将ISO文件的内容直接复制到磁盘的根目录中。只有一个名为的文件夹 完成后,还需要执行一个步骤来使驱动器可启动:导航到 接下来,按照与从CD引导相同的步骤进行操作-重新引导计算机,然后从计算机的引导菜单中选择从USB驱动器或硬盘引导。同样,您可能需要查阅BIOS文档,以了解如何从所需的设备引导计算机上的操作系统。 Slax启动选项在Slax本身开始加载之前,您可以在屏幕中间看到一个大的三叶草图像。这是启动徽标。它会显示一小会儿, 运行Slax(永久保留更改) 运行Slax(新启动) 运行Slax(复制到RAM) 您可以使用此菜单在启动过程中将Slax数据复制到RAM或以“新启动”模式运行Slax,以防持久更改被破坏。使用箭头键进行导航,然后使用 ? 持续的变化从CD / DVD等只读介质运行时,Slax仅将所有系统更改存储在内存中,并且在重新引导时会丢失这些更改。如果您从可写媒体(例如USB驱动器)启动Slax,则对操作系统本身所做的所有更改都将在下次引导时保存并恢复。如果您的设备使用FAT文件系统(这是USB闪存驱动器上最常见的文件),则对Slax本身的所有文件修改都将保存到一个特殊文件中 该文件 安全关闭SlaxSlax运行时,它将从其引导的设备读取系统数据。如果您使用的是永久更改,则Slax甚至会将数据写入启动设备。拔出或弹出它可能会使操作系统崩溃。因此,只有在计算机关闭或重新引导至其他操作系统之后,才能拔出引导设备。同样,如果在运行Slax时访问计算机的硬盘驱动器,这些硬盘驱动器将保持挂载状态并标记为“正在使用”。确保始终从关闭菜单或使用 从内存运行Slax但是,在某些情况下,您需要在保持Slax运行的同时尽快拔出引导设备。确实有可能。它需要您的计算机在启动过程中将所有Slax数据加载(复制)到RAM内存中,因此即使在不再插入引导设备后也可以访问它。为了使此“复制到RAM”功能生效,请确保使用启动菜单中的该启动选项启动Slax。启动Slax所需的时间将会增加,因为它将需要复制整个 Slax的秘籍引导参数(也称为作弊码)用于影响Slax的引导过程。其中一些是所有Linux通用的,其他则仅适用于Slax。您可以使用它们禁用所需的硬件检测,从硬盘驱动器启动Slax等。要使用作弊码,请
用空格分开命令。有关 Slax中包含的文本模式实用程序文本模式提供了多种可以使用的系统工具。这些工具当然也可以在图形用户界面中使用,您只需要在诸如的终端窗口中运行它们即可
? Slax中的桌面应用程序?
自定义Slax即使Slax从CD / DVD等只读介质运行,它仍然提供完全可写的根文件系统(更改存储在内存中),使您可以从联机存储库或其他来源安装其他软件。除非您使用永久更改,否则安装的所有内容仅保留在内存中,并且在重新启动后丢失。下面介绍了向Slax添加软件的工具以及使更改永久生效的工具。 ? 使用apt添加软件Slax完全支持 ? 手动添加软件如果您希望手动将软件添加到Slax,可以通过从Internet下载和编译源代码来完成。只需记住,为了能够在Slax中编译源代码,您将需要 ? 使您的更改永久生效如果从可写介质运行Slax,则更改将被永久存储,并且无需任何其他步骤。但是,如果从CD / DVD等只读介质运行Slax,或者选择在引导过程中禁用持久更改功能,则仍然可以通过创建模块来保存更改。在任何时候,当您安装并配置了所需的应用程序后,请使用 一旦您的更改存储在模块中,您所需要做的就是将此模块包括在您的Slax中,并且它将在启动期间自动激活。将.sb模块复制到 如果要检查模块的内容或修改模块中的文件,可以使用Slax中提供的两个命令:? 请注意,这些命令在较旧的Slax版本中的工作方式有所不同,因此请确保您使用的是Slax 9.6.4或更高版本。 ? 即时激活模块如果您有一个Slax模块(.sb),并且希望在运行Slax时将其激活,而无需重新启动,则可以使用
? 示例:使用新墙纸制作模块#Slax使用/usr/share/wallpapers/slax_wallpeper.jpg中的墙纸
#因此,我们将替换此文件 #首先,创建一个临时模块树 #注意目录本身的扩展名为.sb DIR = / tmp / module.sb mkdir $ DIR mkdir -p $ DIR / usr / share / wallpapers / #现在将墙纸文件复制到该目录 猫new_wallpaper.jpg> $ DIR / usr / share / wallpapers / slax_wallpaper.jpg #最后,将模块目录转换为文件 #目录将被删除,并将创建具有相同名称的模块文件 dir2sb $ DIR
? 示例:将FireFox添加到Slax? #首先,我们启动新的Slax并尝试apt apt安装firefox
#如您所见,没有名为“ firefox”的软件包。让我们尝试搜索单词 apt搜索Firefox | 更多 #啊,现在我们得到了一些东西。该软件包称为firefox-esr。所以让我们安装它 apt安装firefox-esr #我们只希望它叫Firefox,所以让我们编辑负责该名称的桌面文件 sed -i -r“ s / ^ Name = FireFox ESR / Name = Firefox /” /usr/share/applications/firefox-esr.desktop #现在保存新安装的软件,包括我们对模块的更改 #在我们的示例中,该模块将保存在当前目录中 savechanges firefox.sb #如果从只读CD运行,则可以使用我们的模块创建一个新的ISO #然后将ISO刻录到新的CD上,并且在引导时可以使用Firefox #在我们的示例中,该ISO文件将在当前目录中创建 genslaxiso slax.iso firefox.sb #如果我们正在从USB驱动器运行Slax,我们可以将其直接放入模块文件夹 #这样,firefox将在重启后可用 mv firefox.sb / run / initramfs / memory / data / slax / modules /
Slax目录结构所有Slax数据文件都位于引导媒体上的单个目录中。该目录的名称为“ slax”也就不足为奇了。所有的魔力都发生在里面。这里是简化目录结构的概述;目录为红色,使用斜体字还提到了一些有趣的文件?:
slax
├───?boot │????├───? isolinux.bin │????├───? syslinux.cfg │????├───? initrfs.img │????├───? vmlinuz │????└───? ... ├───?changes ├───?rootcopy ├───? 01-core.sb ├───? 02-xorg.sb ├───? 03-desktop.sb ├───? 04-chromium.sb └───? ... ? 引导Linux内核当计算机的BIOS启动Slax时,它实际上仅运行SYSLINUX引导加载程序。引导加载程序本身存储在文件isolinux.bin或ldlinux.sys中,具体取决于您的引导介质-CD / DVD使用isolinux.bin,USB磁盘或硬盘驱动器使用ldlinux.sys。 一旦SYSLINUX引导加载程序执行完毕,它就会从配置文件syslinux.cfg(您猜对了)中了解下一步要做什么。在Slax中,此配置文件包含显示一些很酷的启动徽标的说明,如果用户在超时之前按了某个键,则可以选择提供启动菜单。当超时计数器达到零或用户退出引导菜单时,SYSLINUX引导加载程序会将两个文件加载到内存中:vmlinuz(Linux内核)和initrfs.img(基本根文件系统)。进度由打印在屏幕上的连续点流指示。加载文件后,将执行vmlinuz二进制文件以启动Linux内核。 预初始化在正常情况下(从硬盘驱动器开始使用标准Linux发行版时),Linux内核将从硬盘驱动器挂载根文件系统,? 因此,在Linux内核成功初始化并完全控制了计算机之后,它的最后一个任务是在内存中找到所提到的CPIO存档(如您所记得,它是通过syslinux boot loader从文件initrfs.img加载到那里的),然后解压缩它(进入用作临时根文件系统的内存区域,称为initramfs)并 转义initramfs这时,我们已经运行了一个完全初始化的Linux内核,内存中的initramfs区域由仅具有最基本的Linux命令的临时根文件系统填充,并且临时init刚刚启动。 在initramfs中拥有临时根文件系统并不理想,因为它不支持
initramfs as root:
(initramfs)
/ ├───?bin │????├───? sh │????├───? mount │????└───? ... ├───?dev ├───?mnt ├───?m?(tmpfs)?★ ├───?memory ├───?proc ├───?sys ├───? init └───? shutdown
->
initramfs after move to tmpfs:
(initramfs)
/ └───?m?(tmpfs)?★ ?????├───?bin ?????│????├─── sh ?????│????├─── mount ?????│????└───? ... ?????├───?dev ?????├───?mnt ?????├───?memory ?????├───?proc ?????├───?sys ?????├───? init ?????└───? shutdown
->
tmpfs after switch_root:
(tmpfs)?★
/ ├───?bin │????├───? sh │????├───? mount │????└───? ... ├───?dev ├───?mnt ├───?memory ├───?proc ├───?sys ├───? init └───? shutdown
?
不管整个操作看起来多么奇怪(我们最终都获得了与以前相同的目录结构,似乎根本没有任何改善),但是更改是非常重要的。从现在开始,临时根文件系统位于tmpfs而不是initramfs上,因此? 您可能想知道为什么当前的根文件系统仍标记为临时文件系统。这是因为我们仍处于构建阶段的开始,我们稍后将通过将Slax压缩数据映像组合到AUFS联合来构建真正的根文件系统,如下所述。 Slax数据查询在初始化过程可以开始在可用设备上搜索Slax数据之前,它需要设置工作环境。proc和sysfs文件系统分别安装在 只要可通过中的设备文件访问存储设备
(tmpfs)
/ ├───?bin ├───?dev ├─── ... ├───?memory │????├───?bundles │????│????├───?01-core.sb?(squasfhs mount)?<?───┐ │????│????│????├───?bin?????????????????????????│ │????│????│????├───?etc?????????????????????????│ │????│????│????├───?sbin????????????????????????│ │????│????│????└───?...?????????????????????????│ │????│????├───?02-xorg.sb?......................│... │????│????│????├───?etc?????????????????????????│??: │????│????│????├───?usr?????????????????????????│??: │????│????│????└───?...?????????????????????????│??: │????│????├───?03-desktop.sb?...................│..:... │????│????│????├───?usr?????????????????????????│??:??: │????│????│????└───?...?????????????????????????│??:??: │????│????└─── ...??????????????????????????????│??:??:?loop │????├───?data?(slax device mounted here)???????│??:??:?mounts │????│????└───?slax?????????????????????????????│??:??: │????│?????????├───?boot????????????????????????│??:??: │????│?????????├───?changes?????????????????????│??:??: │????│?????????├───?rootcopy????????????????????│??:??: │????│?????????├───? 01-core.sb?────?>?────?>?───┘??:??: │????│?????????├───? 02-xorg.sb?....................:??: │????│?????????├───? 03-desktop.sb?....................: │????│?????????└─── ?... │????├───?changes?(empty yet) │????└───?union?(empty yet) ├───?proc?(procfs mounted here) ├───?sys?(sysfs mounted here) └───? init
与AUFS放在一起现在,最终根文件系统的各个部分以只读方式安装在中的单独文件夹下?
(tmpfs)
/ ├─── ... └───?memory ?????├───?bundles ?????│????├───?01-core.sb?─────────?>?──────┐ ?????│????├───?02-xorg.sb?..................│....... ?????│????├───?03-desktop.sb?...............│......:........ ?????│????└─── ... ?????????????????????????│??????:???????: ?????├───?changes?────────?>?───────┐???????│??????:???????: ?????├─── ... ?????????????????????????????????????:???????: ?????└───?union?<?═══════?<?═══════?<?─────?< ─────┘ < ────┘ ??????????├───?bin????????????AUFS ??????????├───?etc????????????mount ??????????├───?mnt ??????????├───?root ??????????├───?sbin ??????????├───?usr ??????????├───?... ??????????└───?var
变化空目录 但是,如果Slax是从USB设备或硬盘等可写介质启动的,则它会识别并 切换到真实根至此,已经内置了完全可写的最终根文件系统 tmpfs根在pivot_root系统调用之前:
tmpfs root before pivot_root syscall:
(tmpfs)?★
/ ├─── ... └───?memory ?????└───?union?(aufs)?★ ??????????├───?bin ??????????├───?etc ??????????├───?root ??????????├───?run ??????????│????└───?initramfs?(empty) ??????????├───?sbin ??????????│????├─── ... ??????????│????└─── init ??????????├───?usr ??????????├─── ... ??????????└───?var aufs as new root:
(aufs)?★
/ ├───?bin ├───?etc ├───?root ├───?run │????└───?initramfs?(tmpfs)?★ │?????????├─── ... │?????????└───?memory │??????????????└───?union?(empty) ├───?sbin │????├─── ... │????└───? init?<- gets executed ├───?usr ├─── ... └───?var
?
快速向Slax添加模块根文件系统是可写的,我们可以通过拆包的方式以常规方式安装新软件包,同时运行Slax。还有另一种可能性,可以在不安装任何软件包的情况下,将新文件和目录即时添加到Slax。由于Slax以AUFS作为根运行,因此我们可以采用其他squashfs压缩文件系统,将其循环挂载到位于aufs树之外的目录中(例如, 新的squashfs模块中的所有文件和目录将立即显示,就像它们是从一开始就安装在系统中一样,而解压缩是即时进行的,仅适用于实际访问的文件。 同样,我们可以通过另一个remount命令从aufs根目录中删除先前添加的AUFS分支(挂载的squashfs)。分支中的文件将立即从系统中消失,这将有效地卸载软件包。 Slax关机当Slax关闭以进行重新引导或关闭系统电源时,它会像其他Linux一样执行所有标准任务,例如卸载用户安装的所有分区,终止所有进程,等等。但是由于引导设备可能仍会在最后安装并用于永久更改,因此在发出真正的电源关闭之前,还需要执行一些其他步骤,以确保完全卸载引导设备。 Slax不会在init认为应该这样做的时候关闭系统,而是切换回initramfs(由systemd自动处理)并执行关闭脚本 然后,关闭脚本负责将剩余的从Slax启动并已完全弹出引导设备的已安装磁盘取消掉。最后,计算机将根据用户的意图重新启动或关闭。 现在开始了定制了: 1、虽然slax可在只读介质上运行,它依旧提供了可写的根文件系统,将更改暂存在内存中,可在使用中从网络或其他来源更新和安装软件,对系统进行配置等。如果完成操作后,不做任何处理,所有的更改将随着系统的重启而烟消云散。 2、使用apt安装新软件、更新老软件,同时更新或安装软件依赖的库或者软件包: 1)、apt? edit-sources #编辑软件源 2)、apt? update ? #更新软件源 3)、apt? upgrade ?#更新所有有更新的包,有依赖的不更 4)、apt? search? fileName #查找指定的软件包 5)、apt? list? fileName? ? #列出指定的软件包的所有信息 6)、apt? show?fileName? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #显示指定的软件包 ? 7)、apt? insall?fileName? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #安装指定的软件包 ? 8)、apt? remove? fileName? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#删除指定的软件包 ? 9)、apt? full-upgrade #更新软件包,可能会删除某些软件包为了满足依赖 ? 10)、apt? autoremove #自动删除无用的软件包 3、可以使用源码安装软件,如果需要使用github的包,需要安装git软件包,同时也需要gcc、make等软件包,最好把所有需要的一并装上vim gdb git cmake,需要使用: apt? install build-essential vim gdb git cmake? 4、系统配置,可以配置vim配置文件、git配置文件、bash配置文件等 5、若想将2或3或4的工作保存,主要有以下两种情况:如果是在可写介质上运行slax,所有的更改都是自动保存,无需其他操作,直接将更改保存到/slax/changes/目录下,重启后系统自动读取,就会重新到配置后的状态。另外一种情况是截至不能被写入时,无论是介质本身不能写入还是介质被禁止写入都一样的,使用: savechanges /tmp/mychanges.sb? ? ? ? ? ? ? ? ? ? ? ?? ? ?#将系统的更改保存到指定的/tmp目录下,文件名为mychanges, 将文件保存到可写的介质中,以便后来的使用。 6、使用自己的配置或更改,若介质不能写入,使用genslaxiso重新生成镜像文件,如果介质可写,将mychanges.sb文件放置到其他sb文件一样的目录下,就会在系统启动后自动被加载,从而变相实现了运行环境的保存。 7、模块修改总结: 1)、生成模块? ? savechanges? ?/tmp/mychanges.sb 2)、模块变成目录 sb2dir? mychanges.sb 3)、目录生成模块 dir2sb? ?mychanges 4)、删除模块目录 rmsbdir? mychanges 5)、新模块生成ISO? genslaxiso slax.iso mychanges.sb 6)、及时激活模块? slax? activate? mychanges.sb 7)、及时停用模块 slax? deactivate mychanges.sb (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- pip安装源和虚拟环境的搭建
- linux – Ubuntu DNS查找失败
- Linux / C:获取用户目录而不泄漏
- linux – 如何同时设置niceness和process affinity?
- linux – Amazon S3有“子目录”吗? (Rackspace Cloudfile
- linux – bash shell中的’$$’是什么?
- linux – 无法使用Synology NAS上的/ bin / bash shell通过
- LINUX教程:shell脚本示例:批量比较多个文件的内容是否相同
- Arch Linux 指南 02——安装图形界面
- linux 安装python-igraph提示Could not download and compi