新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
linux命令行中mount point /mnt/cdr does not exist的意思是挂载点/mnt/cdr不存在,所以挂载时出现此错误提示。解决此问题可以先创建挂载点的目录,命令为:
泾川网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联公司2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
mkdir -p /mnt/cdr,然后再重新进行挂载。
扩展资料
1、linux 挂载命令用法介绍:
mount+挂载源 +挂载点
umount+挂载源 /挂载点
2、mount参数介绍:
-r 只读
-W 读写默认
F: 这个命令通常和-a -起使用,它会为每一个mount的动作产生-个行程负责执行。在系统需要挂上大量NFS档案系统时可以加快挂上的动作。
f: 通常用在除错的用途。它会使mount并不执行实际挂上的动作,而是模拟整个挂上的过程。通常会和-V -起使用。
-V: 显示较讯息,通常和-f用来除错。
-L: 将含有特定标签的硬盘分割挂上。
1、linux分区
--在linux里面所有的设备、任何东西,在linux看来都是文件。
--文件在它看来,有两种形式:
第一种是字符型(键盘输入、打印机);
第二种是二进制型(硬盘、光驱、U盘)
--linux中所有硬件
--手动分区
--A、至少有两个分区
/ 根分区
SWAP 交换分区(物理内存大小的两倍)
--B、个人桌面分区
/
/boot 128MB is enough
/usr
SWAP
/tmp(用于光盘刻录)
2、linux目录说明
--/dev/xxyN
--xx (分区所在设备类型:hd--IDE硬盘 sd--SCSI硬盘)
--y (标明分区所在设备
例如:/dev/hda 第一个IDE硬盘 或 /dev/hdb 第二个IDE硬盘 或 /dev/sdb 第二个SCSI硬盘)
--N (数字代表分区:1-4--主分区或扩展分区;逻辑分区从5开始!
例如:/dev/hda3 第一个IDE硬盘上的第三个主分区或扩展分区
/dev/sdb6 第二个SCSI硬盘上的第二个逻辑分区)
3、linux目录结构
/ 根目录,最高级别
/bin 系统基本命令存放目录(/usr/bin)
/boot linux的内核及引导系统程序文件存放目录(如:vmlinuz、initrd.img)
一般情况下,GRUB或LILO系统引导管理也位于这个目录
/dev 设备文件存储目录,如声卡、光驱...
/ect 存放系统设置文件(如用户账号密码、服务器配置文件等)
/home 普通用户家目录,默认存放目录
/lib 库文件存放目录
/lost+found 在ext2或ext3文件系统中,当系统以外崩溃或机器意外关机,而产生一些文件碎片放在这里。
当系统启动的过程中,fsck工具会检查这里,并修复已经损坏的文件系统。
有事喜用发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或者移文件到原来的位置上。
/media 即插即用型存储设备的挂载点自动在这个目录下创建。
如USB盘系统自动挂在后,会在这个目录下产生一个目录;
类似cdrom的目录
/mnt 存放挂载存储设备的挂载目录,如cdrom等目录
/opt 表示可选的意思,有些软件包也会被安装在此,也就是自定义软件包,
比如OpenOffice,或者一些我们自己编译的软件包,也可安装此处。
/proc 操作系统运行时,进程(正在运行的程序)信息及内核信息(比如CPU、硬盘分区、内存信息等)存放在此。
/proc目录是伪装的文件系统proc的挂载目录,proc并不是真正的文件系统
/root linux超级权限用户root的家目录
/sbin 大多是涉及系统管理的命令的存放,只有超级权限用户root才可执行命令存放,普通用户无权限执行此目录下的命令
与 /usr/sbin; /usr/X11R6/sbin; usr/local/sbin 目录相似
(sbin,只有root权限才能执行)
/tmp 临时文件目录,有时用户运行程序的时候,会产生临时文件。
/var/tmp目录和此目录相似
/usr 系统存放程序的目录,如命令、帮助文件等。这个目录下有很多的文件和目录。
大部分Linux发行版提供的软件包都安装在此,涉及服务器的配置文件就安装在/ect中。
/usr/share/fonts 字体目录
/usr/share/man 或 /usr/share/doc 帮助目录
/usr/bin 或 /usr/local/bin 或 /usr/X11R6/bin 普通用户可执行文件目录
/usr/sbin 或 /usr/local/sbin 或 /usr/X11R6/sbin 超级权限用户root可执行命令存放目录
/usr/include 程序头文件存放目录
/var (vary)此目录经常变动
/var/log 用来存放系统日志
/var/www 用来定义Apache服务器站点存放
/var/lib 用来存放一些库文件,如MySQL的,以及MySQL数据库的存放地。
4、基本命令
--查看帮助 *** --help *** --?
--查看详细帮助 man ***
--登录 login
--退出窗口 exit
--关机 shutdown
--重启 reboot
--初始化 init (run level -/etc/inittab),0-6看第六部分的g
--进入根目录 cd /
--回上层目录 cd ..
--相对路径 cd dev
--绝对路径 cd /dev
--查用户名 whoami
--查当前目录 pwd
--列出当前目录内容 ls
-l(树详细显示目录内容)
-m(横列显示目录内容,是屏幕长度显示)
-a(列出全部文件,包括隐藏文件)
-S(以文档大小排序)
--创建目录 mkdir dname
--删除目录 rmdir dname
rm -r *** -(递归删除该目录下所有内容,询问每个准备删除的文件)
rm -rf ***-(强制删除该目录下所有内容,不询问)
--创建空白文件 touch ***
(ps:从技术的角度来讲,linux的文件后缀名没有任何意义)
--复制 cp
cp -r **1 **2 (复制1到2中)
--移动 mv
mv -t **1 **2 (把2移动到1中)
--编辑文本 vi [文件名]
--查看文本 cat 由第一行开始显示文本内容
tac 从最后一行显示,可以看出 tac 是 cat 的倒着写
more 一页一页的显示文档内容
less 与 more 类似,可以往前翻页
head 只看头几行
-N(数字,可根据行数显示)
tail 只看后几行
-N(数字,可根据行数显示)
nl 显示的时候,顺序输出行号
od 以二进制位的方式读取档案内容
--查找文本 find [路径][查找类型][搜索文件名]
如查找rc.local find /etc -name *.local
--查找命令信息及其位置 whereis 命令
如 whereis ls
--查看环境变量 echo $SHELL
如 echo $PATH (分大小写:分隔符是:,windows是echo %path%;)
--链接 ln
如 ln joe.txt a (硬链接,如同复制一个新文件,joe.txt删除后,a还存在)
a是链接的名称,a和joe.txt同步,然后a的内容和joe.txt一样
joe.txt改变,a也跟着变
如 ln -s joe.txt b (软链接,如同创建一个快捷方式,joe.txt删除后,b不存在)
--wc 统计指定文本文件的行数、字数、字符数
--grep(很常用) 在指定的文本文件中查找指定的字符串
grep 字符串 文件名
--col 见管道..
--------------------
----信息显示命令----
--------------------
--date 显示和设置日期
--stat 显示指定文件的相关信息
--who、w 显示在线登录用户
--whoami 显示用户自己的身份
--id 显示当前用户的id信息
--hostname 显示主机名称
--uname 显示操作系统信息
--dmesg 显示系统启动信息
--du 显示指定的文件(目录)已使用的磁盘空间
--df 显示文件系统磁盘空间的使用情况
--free 显示当前内存和交换空间的使用情况
--fdisk -l 显示磁盘信息
--locale 显示当前语言环境
5、挂载点(mount 设备目录 挂载目录)
--访问设备 (那设备当成一个文件,和另外一个文件夹进行绑定)
--例如挂载光驱:步骤 [cd /mnt]---[mkdir cdr]---[mount /dev/cdrom /mnt/cdr]---[cd cdr]--OK!直接访问光驱内容
--卸载挂载设备(umount /dev/cdrom)--注意必须先退出挂载目录,否则出现"device is busy"错误.
6、startup-shutdown(linux启动流程)
--A、boot sequence(important) linux启动过程
a. load bios(hardware information)
b. read MBR's config to find out the OS
(MBR--Master Boot Record,硬盘第一个物理扇区,柱面0、磁头0、扇区1,包含主引导程序和硬盘分区表)
c. load the kernel of the OS
(加载为kernel核心的OS)
d. init process starts...
(启动linux第一个进程init)
e. execute /etc/rc.d/sysinit
(执行系统最重要的配置文件,后台启用进程)
(rc.d--run command)
f. start other modules(stc/modules.conf)
(开启各种模块,如内存管理模块、硬盘管理模块)
g. execute the run level scripts
(系统启动是分层次的,根据情况执行,每个层次之间没关系)
0 - 系统停机状态
1 - 单用户工作状态 root
2 - 多用户状态(没有NFS)
3 - 多用户状态(有NFS)
NFS - Network File System 网络文件系统,联网系统
4 - 系统未使用,留给用户
5 - 图形界面
6 - 系统正常关闭并重新启动
如:cd /etc -- 有rc0.d、rc1.d、rc2.d、rc3.d、rc4.d、rc5.d等多个文件夹,保存着各个层次执行的进程文件
h. execute /etc/rc.d/rc.local (重要)
(保存其它进程脚本,如tomcat自动启动,要修改此配置文件)
i. execute /bin/login
(登录界面)
j. shell started...
7、vi 文本编辑器
--两种模式:命令模式 编辑模式
--vi [文件名]
(切换到编辑模式)
a append-光标后添加
i insert-光标前插入
o open-另起一行编辑
esc (切换回命令模式)
:w 存盘
:wq 存盘退出
:q 退出
:q! 不存盘退出
dd 删除其中一行
dw 删除一个单词
(sudo gedit 文本 常用linux下的文本编辑器,比vi好用)
8、用户设置
--切换用户(switch user) su username
小技巧:直接exit切换
--添加用户 useradd username [-g] [组名](分配到某个用户组)
(创建后会自动在/home目录下创建该新用户的文件夹,如/home/username)
--设置密码 passwd username
--cd /etc
--查看用户信息 more password
如新增的用户信息:username:x:500:500::/home/username:/bin/bash
第一个数字,代表用户组,当添加用户没有指定用户组时,系统会创建一个和用户ID一样的组ID;
第二个数字:用户ID号;
用户的目录是/home/username;
用户的SHELL是/bin/bash
(命令---SHELL[解释命令]---kenrel内核)
SHELL有多种类型,如csh、bash(常用)、bsh、ksh、sh(最原始)
--添加用户组 groupadd groupname
--查看用户组信息 more group
--删除用户组 groupdel groupname
--修改用户 usermod [-g] [组名] [用户名]
--删除用户 userdel username
然后把/home的文件夹删除了 rm -rf 文件夹
9、权限file privilege
--linux把文件的权限分成四种:r:read w:write x:execute -:none
如:-rw-r--r--
lrwxrwxrwx
drwxr-xr-x
drwxr-xr-x
第一个数字'-'代表文件,其余是文件夹,后9位分为3组,每组有四种权限设置rwx-
第一位表示文件所有者
第二位表示和所有者在同一用户组的用户
第三位表示不在同一用户组的用户权限
--设置权限 (随意应用,灵活组合!)
1、普通用法
--添加权限 [chmod +x 文件]
如:-rw-r--r-- --- -rwxr-xr-x
--删除权限 [chmod -x 文件]
如:-rwxr-xr-x --- -rw-r--r--
--给自己添加权限 [chmod ?+x 文件]
如此类推,组--g,其他人--o
如:chmod u+x -rw-r--r-- --- -rwxr--r--
chmod g+x -rw-r--r-- --- -rw-r-xr--
chmod o+x -rw-r--r-- --- -rw-r--r-x
2、专业用法 chmod 755/777
--原理,八进制转二进制
如755,111 101 101, rwx r-x r-x
777,111 111 111, rwx rwx rwx
--修改所有者权限 chown (change owner)
如:chown 原来文件 file1 的所有者是 root,改成joe的
chown joe file1
10、管道(把上一个命令执行的结果交给下一个命令)
--使用方法:
命令1|命令2|命令3......|命令n
--使用举例
--$ls -Rl /etc | more
(如 ls -Rl /etc (在控制台模式下,无法返回前面过去的信息),因此需要管道执行该查询,实现分页的工作, ls -Rl /etc | more)
--$cat /etc/passwd | wc
(显示文件结果,再数数有多少行)
--$cat /etc/passwd | grep lrj
(显示文件结果,再查找包含lrj的行)
--#dmesg | grep eth0
(显示系统启动的信息,再查找包含eth0的行--真正含义,检查网卡执行信息是否正常)
--$man bash | col -b bash.txt
语法:col [-bfx][-l缓冲区列数]
补充说明:在许多UNIX说明文件里,都有RLF控制字符。当我们运用shell特殊字符""和"",把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col指令则能有效滤除这些控制字符。
参数:
-b 过滤掉所有的控制字符,包括RLF和HRLF。
-f 滤除RLF字符,但允许将HRLF字符呈现出来。
-x 以多个空格字符来表示跳格字符。
-l缓冲区列数 预设的内存缓冲区有128列,您可以自行指定缓冲区的大小。
--$ls -l | grep "^d"
(用正则表达式筛选出目录列表中 头字母为'd' 的内容--目录)(^是正则表达式开头部分)
--$ls -l * | grep "^-" | wc -l
(列出目录列表中 头字符为'-'的内容--文件,并统计显示的行数wc -l)
11、其他命令
--wall(warning all) 通知所有人
a.命令替换
如 wall `date`、 cd 'pwd'、mkbootdisk $(uname -r)
b.重定向
重定向输出:
如 ls cmd.txt ,把文件写到cmd.txt,不输出在控制台
ls cmd.txt ,把文件追加写到cmd.txt
重定向输入:
如 wall cmd.txt,把文本内容发给所有人
12、修改系统的默认系统级别
常用3和5
3 - 多用户状态(有NFS)
NFS - Network File System 网络文件系统,联网系统
5 - 图形界面
PS.设置用户权限: sudo chmod 777 目录
4表示读,2表示写,1表示执行.
第一位表示文件所有者,第二位表示和所有者在同一用户组的用户,第三位表示不在同一用户组的用户权限.
755表示文件所有者可读写,执行.
第二位5表示与所有者在同一用户组的可读,可执行,不可写.
第三位5表示其它组可读,可执行,不可写. 转载于Joewalker在本人空间也有详细说明
你好,很高兴为你解答:
顺序/位置快捷键
快捷键 名称 简要介绍
Ctrl+PgDn 向后一个 在物件层中把物件向后移动一个位置
Ctrl+PgUp 向前一个 在物件层中把物件向前移动一个位置
Ctrl+PgDn 到最后面 移动物件到寄存物件那一层的后面
Ctrl+PgUp 到最前面 移动物件到寄存物件那一层的前面
下箭头 微调 通过微调选项对话框中指定的值调小选择物件
上箭头 微调 通过微调选项对话框中指定的值调大选择物件
右箭头 微调 通过微调选项对话框中指定的值向右微调选择物件
左箭头 微调 通过微调选项对话框中指定的值向左微调选择物件
Shift+下箭头 精密微调 通过精密微调选项对话框中指定的值调小选择物件
Shift+上箭头 精密微调 通过精密微调选项对话框中指定的值调大选择物件
Shift+右箭头 精密微调 通过精密微调选项对话框中指定的值向右微调选择物件
Shift+左箭头 精密微调 通过精密微调选项对话框中指定的值向左微调选择物件
对齐/分布快捷键
快捷键 名称 简要介绍
B 下对齐 向下对齐选定物件
C 垂直居中对齐 垂直居中对齐选定物件
T 上对齐 上对齐选定物件
R 右对齐 右对齐选定选择
E 水平居中对齐 水平居中中对齐选定物件
L 左对齐 左对齐选定物件
P 页面中心对齐 页面中心对齐选定物件
对话框中可以使用这些便捷键。
填色/外框快捷键
快捷键 名称 简要介绍
F11 渐变填色 进入渐变填色对话框
Shift+F11 标准填色 进入标准填色对话框
F12 外框笔 进入外框笔对话框
Shift+F12 外框笔色彩 进入外框笔色彩对话框
变形快捷键
快捷键 名称 简要介绍
Ctrl+F7 位置 打开位置泊坞窗口
Ctrl+F8 旋转 打开旋转泊坞窗口
Ctrl+F9 缩放与镜像 打开缩放与镜像泊坞窗口
Ctrl+F10 大小 打开大小泊坞坞窗口
效果快捷键
快捷键 名称 简要介绍
Alt+F3 滤镜 显示滤镜泊坞窗口
其他快捷键
快捷键 名称 简要介绍
Ctrl+F11 符号 显示符号泊坞窗口
Alt+F2 线形尺度 显示线形尺度泊坞窗口
Shift+F1 帮助:这是什么? 对选定的物件显示上下文有关帮助
Alt+F11 VBA编辑器 运行VB应用程序编辑器
如何“安装”CDlinux?
CDlinux 是个从光盘启动、运行的小 Linux,是以一个标准的 ISO 文件的格式发布的。所以最简单的“安装”方法是:把这个 ISO 文件刻录到光盘上,用它启动机器就是了。
当然,你也可以把 CDlinux 安装到硬盘或 U 盘、USB 移动硬盘上(请参见下文)。
如何把 CDlinux 集成到我自己的光盘上?
CDlinux 本身很小,0.4.6 只有不到 14 兆,这比一张刻录盘的容量差多了。所以,如果有兴趣的话,你可以自己动手,把 CDlinux 与其它软件集成到一起,不必单刻一张盘。还可以与其它系统一起做成多启动光盘。具体操作既可以在 Linux 下进行,也可以在 Windows 下进行:
用 Linux 的方法 (以下操作可以在 CDlinux 也可以在一般的 Linux 系统中进行)
首先要把 CDlinux 的内容从 ISO 镜像里展出来,先挂载它:
# mount -o loop CDlinux-x.x.x.iso /some/where
这样 CDlinux 里的具体内容就都在 /some/where 目录下了。假设你已经把其它要刻到盘上的软件都放到了 /mycd 目录下,现在把 CDlinux 也拷到那个目录里:
# cp -p -r /some/where/* /mycd
接下来 cd /mycd,打开 mkisofs.sh 文件,根据你自己的具体情况进行必要的修改,存盘退出。最后,执行:
# ./mkisofs.sh
生成新的光盘镜像,缺省情况下新镜像是 /tmp/1.iso。现在就可以它刻录出来了。
注意,通过以上步骤做出的光盘启动时会直接进入 CDlinux,启动效果和原来的 ISO 镜像是一样的。如果你想制作带菜单的多启动光盘,还需要用到 ISOlinux (SYSlinux 的一个组件) 等其它工具,至于如何使用它们,请参见它们各自的文档。
用 Windows 的方法
这个我不太熟,不过我想也不会太麻烦。只要注意以下几点就行了:
可以用 WinRAR 来提取光盘镜像里 CDlinux 的内容;
CDlinux 是通过 boot/CDlinux/CDlinux.img 这个 2.88M 软盘镜像来启动的;
请保持 CDlinux 的目录结构,不要改动;
不要改变文件/目录名的大小写。
如何把 CDlinux 安装到硬盘上?
Linux 本身功能非常强大又非常灵活,CDlinux 也继承了这一点,所以稍加定制就可以把它安装到各种各样的设备上。并且仅仅把 CDlinux 安装到硬盘上就有很多种方案可选,这里我们只介绍一种方案:把 CDlinux 安装到一个 Windows FAT 分区里,用 loadlin 来启动它。
在以下的说明中,我们假设你的 Windows 的“C: 盘”是 FAT16 或者 FAT32 格式的,并且它对应 Linux 下的 /dev/hda1。我们将把 CDlinux 安装到“C: 盘”上。
用 Linux 的方法 (以下操作可以在 CDlinux 也可以在一般的 Linux 系统中进行)
首先,挂上 CDlinux 的 ISO 镜像和 C: 盘:
# mount -o loop CDlinux-x.x.x.iso /mnt/cdrom
# mount /dev/hda1 /mnt/win
(如果你不想装到 C: 盘上,或者你的 C: 盘不是 /dev/hda1,请对上述命令做相应的修改)
然后把 extra/ 目录下的内容拷贝到 C: 上:
# mkdir /mnt/win/CDlinux
# cp -r /mnt/cdrom/boot/CDlinux/extra /mnt/win/CDlinux
接下来,把内核和 initrd 也拷到 C: 盘:
# mount -o loop /mnt/cdrom/boot/CDlinux/CDlinux.img /mnt/floppy
# cp /mnt/floppy/bzImage /mnt/floppy/CDlinux.gz /mnt/win/CDlinux
最后,下载 loadlin (~10k) 并把它展到 C: 盘上:
# tar -C /mnt/win/CDlinux -zxf loadlin.tgz
(这步把“loadlin.exe”和一个“autoboot.bat”批处理文件拷贝到 /mnt/win/CDlinux 目录里。请检查“autoboot.bat”文件,并根据你自己的具体情况做相应的修改。)
现在,可以重启到纯 DOS 环境,用以下命令来启动 CDlinux 了:
C:
CD CDlinux
AutoBoot
注意,以上步骤只是一个简单的例子,这里的假设可能和你的情况并不一致。所以,在操作时别忘了根据自己的具体情况做必要的修改。另外请参考“简介:CDlinux 的命令行参数”和“简介:CDlinux 的结构”。
如何把 CDlinux 安装到 U 盘上?
把 CDlinux 安装到 U 盘也有多种方案可选。我们还是只说一种:安装到 U 盘上的一个 FAT 分区里,并用 SYSlinux 来启动。
在以下的说明中,我们假设你的 USB 盘(U 盘或 USB 移动硬盘)被设定为硬盘模式。上面的第一个分区是 FAT12、FAT16、或者 FAT32 格式的,并且并且它对应 /dev/sda1。
用 Linux 的方法 (以下操作可以在 CDlinux 也可以在一般的 Linux 系统中进行)
首先,在 USB 盘上安装 syslinux:
# syslinux /dev/sda1
挂载 CDlinux 的 ISO 镜像和 USB 盘:
# mount -o loop CDlinux-x.x.x.iso /mnt/cdrom
# mount /dev/sda1 /mnt/win
(如果你的 USB 盘不是 /dev/sda1,请做相应的修改)
然后,把 extra/ 目录下的内容拷贝到 USB 盘上:
# mkdir /mnt/win/CDlinux
# cp -r /mnt/cdrom/boot/CDlinux/extra /mnt/win/CDlinux
接下来,把内核和 initrd 也拷过去:
# mount -o loop /mnt/cdrom/boot/CDlinux/CDlinux.img /mnt/floppy
# cp /mnt/floppy/bzImage /mnt/floppy/CDlinux.gz /mnt/win
最后,下载 syslinux 的配置文件 (~2k) 并把它展到 USB disk 盘上:
# tar -C /mnt/win -zxf syslinux-cfg.tgz
(这一步将把“syslinux.cfg”和一些显示信息等文件拷贝到 /mnt/win 目录下。不要忘了先检查一下“syslinux.cfg”,并根据你自己的具体情况做相应的修改。)
现在可以把你的 BIOS 设置成从 USB-HDD 或者 USB-zip 启动。(具体设为那种和你的 BIOS 及 USB 盘有关,试一下就知道了。)
注意,以上步骤只是一个简单的例子,这里的假设可能和你的情况并不一致。所以,在操作时别忘了根据自己的具体情况做必要的修改。另外请参考“简介:CDlinux 的命令行参数”和“简介:CDlinux 的结构”。
简介: CDlinux 的命令行参数
为了让 CDlinux 更灵活,不但能从光盘启动,还能从其它各种设备启动。并且不但能把模块挂载到内存中(ramdisk),为了节约内存,还可以自动用“loop”方式挂载模块,我们定义了下述三个内核命令行参数:
CDL_DEV=:
告诉 CDlinux 在哪个设备上可以找到附加的“包”和“模块”
缺省值:/dev/cdrom
例子: CDL_DEV=/dev/hda1
CDL_DIR=:
extra/ 目录在 CDL_DEV 的文件系统的那个目录下?
缺省值:boot/CDlinux, CDlinux, zxh/CDlinux
例子: CDL_DEV=APPs/CDlinux
CDL_LOOP:
是否强制以“loop”方式加载“模块”?
缺省值:否,尽量把“模块”挂载到内存里。
例子: CDL_LOOP
以上这三个参数都是可选的,正常从光盘启动时可以一个也不加,使用缺省值即可。如果模块太多或者太大,CDlinux 会自动以“loop”方式加载它们。不过这样一来,在 CDlinux 运行时就不能把光盘拿出来了。
定制
简介:CDlinux 的结构
CDlinux 是高度可定制的。它由以下两部分构成:
1. “基本”部分:一张 2.88M 软盘镜像,CDlinux.img
2. “附加”部分:其它附加的“包”和“模块”
“基本”部分就是一张 VFAT 格式的 2.88M 软盘镜像。上面包含了内核和一些最基本的软件,包括:bash (1.14.7)、bftpd (一个小 ftp 服务器)、busybox、bzip2、e2fsprogs、file、find、gawk、grep、gzip、midnight commander (4.1.35)、portmap、sed、tar 和 vim (5.8) 等。如果你只是需要一个最基本的 Linux 环境,你可以把 CDlinux 的其它内容统统删掉,只保留这一个文件,一样跑得不错。
“附加”部分包括其它一些有用的工具软件,这些软件被打成了“包”(package)或者“模块”(module),放在 extra/ 目录下。启动时,CDlinux 会自动到 extra/ 目录下查找并安装它们。
虽然 CDlinux 只需 CDlinux.img 这一个文件就能跑起来,不过功能上就大打折扣了。所以最好还是保留这些附加的包和模块。当然,你也可以向 extra/ 目录里添加你需要的软件,把那些你用不到的删掉,自己定制一个 CDlinux 版本。
如何向 CDlinux 里添加其它软件?
CDlinux 很小,所以有很多有用的软件并没有被集成进来。不过你可以自己定制它,加上你需要的软件。可以把软件做成一个“包”或者一个“模块”加进来。具体用哪种格式,取决于软件的大小、是否需要初始化。小的、不需初始化的软件可以做成“包”;反之,最好做成“模块”。比如,你可以把 F-PROT 做成一个“模块”添加到 extra/目录下,这样你就可以用 CDlinux 来杀毒了。(F-PROT 是个非常简洁、功能非常强大的杀毒软件,之所以没有集成到 CDlinux 的发行版中,是因为我不知道它的 license 是否允许。)
为 CDlinux 添加软件的注意事项
CDlinux 是用 gcc-2.95.3 编译的,链接的是 glibc-2.2.5。你添加的软件最好也是编译、链接自同样的环境;
如果你加的软件需要其它的,CDlinux 没有提供的库,请把这些库也一起添加进来。
如何为 CDlinux 制作一个“包”(package)?
做一个包非常简单,所谓“包”就是一个标准的 .tar.gz 文件。关于这个 .tar.gz 文件里的目录结构,你可以参考 extra/ 目录下已有的那些“xxx-cdl.tgz”文件。制作时只需注意一下几点:
“包”的文件名必须是“xxx-cdl.tgz”,否则将被忽略,不会被安装;
如果愿意,你还可以为你的包加上一个简短的说明,并把它存为 zxh/SPEC。启动时 CDlinux 会自动把它集成到 /var/log/packages 里。关于 SPEC 的格式,请参照已有的“xxx-cdl.tgz”文件;
zxh/ 目录里除了 SPEC 以外的所有其它内容都将被忽略,不被安装;
CDlinux 是在一个小 RAM 磁盘里运行的,所以请尽量把包做得小一点。像 man 和 docs 等文档都可以放到 zxh/ 目录下,这样它们就不会被安装,你以后要查阅起来也比较方便。
如何为 CDlinux 制作一个“模块”(module)?
如果要添加的软件比较大,可以把它做成一个“模块”。“模块”就是一个标准的 cramfs 镜像,制作起来比做“包”稍麻烦一些,需要用 mkfs.cramfs 命令。“模块”具体结构请参考 extra/ 目录下已有的“xxx-cdl.md”文件。CDlinux 启动时自动到 extra/ 下查找这些“xxx-cdl.md”,并自动挂载它们。
制作模块时的的注意事项
“模块”的文件名必须是“xxx-cdl.md”,否则将被忽略,不会被安装;
必须为模块指定一个挂载点。方法是把挂载点写到一个叫“.mount_point”的文件里,并把该文件放到 cramfs 的根目录下。“.mount_point”文件的具体格式可以参考 extra/ 下已有的“xxx-cdl.md”文件;
如果该软件需要执行一些初始化操作,可以把初始化程序或脚本命名为“.init”放到 cramfs 的根目录下,并将起属性设置为可执行。启动时 CDlinux 会自动找到并执行 .init;
缺省情况下,CDlinux 会尽量把“模块”都加载到内存中,内存不足时才以“loop”方式加载“模块”。如果你想省出更多内存来运行程序,可以在内核命令行里加上 “CDL_LOOP”参数,来强迫 CDlinux 以“loop”方式加载所有模块;
cramfs 是一种只读文件系统,并且不记录文件的时间信息。
如何按照我自己的口味定制 CDlinux?
如果 CDlinux 的缺省状态不合你的胃口,你可以自己动手定制它。定制的办法有难有易:
“难”的办法是挂上 initrd 直接修改。CDlinux 的 initrd 是一个标准的 ext2 镜像,可以直接挂载、修改,没有问题。不过我还是推荐你尽量使用下面的“简单”办法。
“简单”的办法是,把修改的内容放到 extra/system-extra-cdl.tgz 文件里。比如,若是修改了 /etc/profile,把修改过的文件存为 system-extra-cdl.tgz 下的 /etc/profile。这样 CDlinux 启动时会自动用新的 /etc/profile 把旧的覆盖掉。另外,如果需要的话,你还可以在 system-extra-cdl.tgz 文件里加上个 /etc/rc.d/rc.local 脚本,以执行你需要的一些初始化操作。下面是一些具体的例子:
修改 bash 的命令行提示符
修改 CDlinux 原来的 /etc/profile 文件中带“PS1=”的哪些行,把修改后的结果保存到 system-extra-cdl.tgz 里,仍叫 /etc/profile。
把 bash 的命令行编辑模式由 emacs 改为 vi
编辑 /etc/inputrc,加上“set +o vi”,把新文件存到 system-extra-cdl.tgz 里,仍叫 /etc/inputrc。
让 CDlinux 自动挂载 C: 盘
编辑 /etc/fstab,把新文件存到 system-extra-cdl.tgz 里。
让 CDlinux 自动加载 AMD PCNET32 网卡的驱动
新建一个脚本,在里面加上“modprobe pcnet32”,然后把它存为 system-extra-cdl.tgz 里的 /etc/rc.d/rc.local。
另外,CDlinux 里自带的那些软件包如果不合你的胃口,咱也可以改:
把 zhcon 的缺省输入法由拼音改为五笔
# mkdir temp ; cd temp
# tar zxpf /some/where/CDlinux/extra/zhcon-x.x-cdl.tgz
# mv -f zxh/wb/* usr/lib/zhcon
# tar zcpf /some/where/CDlinux/extra/zhcon-x.x-cdl.tgz *
# cd .. ; rm -rf temp
(CDlinux 里带的这个 zhcon 只支持简体中文(GB2312),如果你不需要简体中文支持,可以把它删掉,自己另编译一个支持繁体中文、日文或韩文的加上)
让 mkisofs 支持更多的 joliet 代码页(codepage)
CDlinux 里缺省带的 mkisofs 只支持 cp437、cp936(简体中文)、iso8859-1 和 utf8 的 joliet 代码页,如果想换成支持更多代码页(包括 CJK)的版本,可以执行如下操作:
# mkdir temp ; cd temp
# tar zxpf /some/where/CDlinux/extra/cdrtools-x-x.x-cdl.tgz
# mv -f zxh/removed/usr/bin/mkisofs usr/bin
# tar zcpf /some/where/CDlinux/extra/cdrtools-x-x.x-cdl.tgz *
# cd .. ; rm -rf temp
配置
如何配置网络?
CDlinux 可以自动检测很多常见的以太网卡,不过为了让它小一点,更多网卡的驱动没有编到内核里,而是做成了内核模块。如果 CDlinux 没能自动识别你的网卡,你就要自己动手去加载相应的内核模块啦 :(
如果不知道驱动是那个模块,可以先“lspci”,在输出结果里找带“Ethernet controller:”字样的行,然后到 /lib/modules/x.x.xx/kernel/drivers/net,参照那些模块的名字,看能不能“蒙”出来到底是哪个模块。要加载比如说名为“xxx.o”模块,可以执行“modprobe xxx”。
一但你的网卡被正确识别了,你可以用如下命令来配置 IP、DNS 等:
# net-config
(如果你用的是 USB-link 线,可以先“modprobe usbnet”,然后当 net-config 问要配置哪个网络接口时输入 usb0。)
或者,如果你所在的网络里有 DHCP 服务器,可以执行:
# dhcpcd start
设置代理服务器可以用:
# proxy-config
修改网卡的 MAC 地址:
# mac-fake
如何配置 RAID 设备?
SCSI 和 RAID 设备的驱动都做成了内核模块,CDlinux 不能自动检测它们,你需要自己加载它们的驱动(内核模块)。下面这个例子假设你有一个基于 AHA1542 芯片的 SCSI 卡,上面连了两个 SCSI 盘,分别是 /dev/sda、/dev/sdb。并且通过软件 RAID 把 /dev/sda1 和 /dev/sdb1 做成了一个 RAID0 设备。可以通过如下命令来驱动它:
# modprobe aha1542
# modprobe raid0
# mdadm -A /dev/md0 /dev/sda1 /dev/sdb1
好了,现在你可以通过 /dev/md0 来访问这个 RAID0 设备了。
如何配置鼠标?
用 mouse-config 命令。(支持绝大多数 COM/PS2/USB 鼠标)
使用
如何与其它计算机交换数据?
CDlinux 里已经带了 ftp、ssh1 和 nfs3 客户端/服务器。缺省状态下 ftp 和 ssh 服务器已经启动。所以最简单的交换数据的方法就是用 ftp 和 scp。
缺省状态下 nfs 服务器没有启动,你需要先编辑、修改一下 /etc/exports,指定 export 哪些目录,和 export 的方式,然后执行:
# nfsd start
CDlinux 里还带了 nfs 和 samba 的客户端。要挂载 nfs 资源:
# mount -t nfs xx.xx.xx.xx:/exported/resource /some/where
挂载 samba 资源:
# mount -t smbfs -o username=xx //machine_name/resource_name /some/where
如何改变分区大小、修改分区表?
请使用“parted”或者“resize2fs”等。
如何修复被损坏了的分区表?
用“gpart”。(这个版本已打过 reiserfs-3.6 补丁,可以放心使用)
如何从 ext2 文件系统中恢复被误删除的文件?
用“e2undel”。
LILO/GRUB 被 Windows 覆盖了,如何修复?
安装 Windows 9x 会覆盖硬盘的主引导记录,导致原来安装的 Linux 无法启动,这时你可以启动 CDlinux 来进行修复。
首先,挂上 Linux 的根分区,比如说 /dev/hda5:
# mount -t ext2 /dev/hda5 /mnt/local
然后,假设你是用 LILO 来引导的:
# lilo -r /mnt/local
如果不成功,可以再试试:
# chroot /mnt/local /sbin/lilo
如果还是不行,再仔细找找原因,比如是不是上面 LILO 的路径不对等。耐心点,只要 Linux 的分区没有被破坏,一定可以恢复的。如果你是用 GRUB 来引导系统的,方法也和上面的类似。LILO/GRUB 的具体使用方法,请参考它们各自的文档。
Windows 9x 覆盖了 NT/2k/XP 的引导记录,“双启动菜单”不见了,如何修复?
假设你的“C: 盘”是 /dev/hda1,格式是 FAT32,新装的 Windows 98 破坏了 XP 的引导记录,现在只能进 98 了。这种情况可以试试用 CDlinux 来修复:
# ms-sys -2 /dev/hda1
关于 ms-sys 的具体用法,请参见它的文档。
NT/2k/XP 的管理员密码丢了,怎么办?
如果忘了 NT/2k/XP 的管理员密码,想再找回来是很难的。不过你可以用 CDlinux 再强行重设一个密码,或者干脆把密码清空。执行:
# nukent
然后按提示操作。
--------------------------------------------------------------------------------
CDlinux 里带了很多实用工具,关于它们的用法的简短说明,可以参考 /var/log/packages。另外,许多软件的 man 手册和文档被放在了对应的“xxx-cdl.tgz”文件的 zxh/ 目录下,没有安装,你可以挂上 CDlinux 光盘,查阅这些文件。关于某个软件的具体用法,已经超出了这个 mini-HOWTO 的范围,请参考它们各自的文档。RTFM 可是一种很好的学习方法 :)