linux实习笔记(一

2013-11-14
在linux下面察看版本信息,通常使用的命令是uname
 
ubuntu系统:
$ uname -a
Linux wanghaifeng-laptop 2.6.32-23-generic #37-Ubuntu SMP Fri Jun 11 07:54:58 UTC 2010 i686 GNU/Linux
RedHat系统:
$ uname -a
Linux localhost.localdomain 2.6.18-194.el5 #1 SMP Tue Mar 16 21:52:43 EDT 2010 i686 i686 i386 GNU/Linux
-a选项表示察看所有的信息,但是从输出信息可以看出来,uname看到的版本信息,只是内核版本的信息,而不是发行版的版本信息
 
那我们如何察看发行版的信息呢?
在RedHat系统里,存在一个/etc/redhat-release文件,里面保存了发行版的版本信息
$ cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 5.5 (Tikanga)
 
哪有没有一个更加通用的方法呢?那就是/etc/issue文件
issue文件是登录前的信息和标识文件,里面存放了发行版的版本信息
ubuntu系统:
$cat /etc/issue
Ubuntu 10.04.1 LTS /n /l
RedHat系统:
$ cat /etc/issue
Red Hat Enterprise Linux Server release 5.5 (Tikanga)
Kernel /r on an /m
这样就能看到实际的发行版版本信息了
 

1
1

.挂载

1.1

.nfs  

nfs将其他主机的目录挂载到本地
showmount –e ipaddress   查看当前主机存在哪些可挂载的共享目录        mount –t nfs ip:/将要挂在的目录  /挂载点
例:mount –t nfs 193.168.249.194:/data/sdb2 /mnt/nfs
查看服务器可挂载的文件系统:
Showmount –e 193.168.249.194
查看os的版本: cat /etc/issue  或者 cat /etc/motd
1.2

.Loop

loop 用于挂载本地镜像
    mount -o loop 镜像挂在点
    example: mount –o loop RHEL6.4-20130130.0-server-i386-dvd1/iso

mount -o loop,ro /mnt/nfs/RHEL_GA/RHEL6.4GA_x86_64/RHEL6.4-20130130.0-Server-x86_64-DVD1.iso /mnt/iso/
 1077  yum makecache
 1078  yum -y install gcc gcc-c++
1.3.虚拟机iso
使用虚拟机挂载镜像时,以VMware player为例,按照顺序操作:
点击虚拟机左上角的Player –〉 Manage –〉 Virtual Machine Settings –〉Hardware –〉CD/DVD –〉勾选当前页的Device status中的两个选项并在Connection的Use Iso image file中添加镜像文件路径 –〉ok
#mount 查看iso在哪个device
#mount iso所在device 挂载点
 
 
2

.yum源的配置

由于rhel系统未注册的情况下,不能进行yum 安装,此时需重新配置yum源以备使用yum安装需要的软件包
1.     镜像挂载
2.     /etc/yum.repos.d/rhel-debuginfo.repo配置如下:
[rhel-debuginfo]                             #用于系统识别,命名时避免重名冲突
name=iso                                               #自定源名
baseurl=file:///mnt/iso/Server               #安装包的存放路径(安装包全部集成在Server文件夹#中,如不然,则baseurl=file:///mnt/iso)
enabled=1                                       #使能触发
gpgcheck=0                                              #关闭检测
rmp –qa |grep yum
rpm -ivh yum* createre
 KVM和XEN的区别:
Xen是一个外部的hypervisor程序(虚拟机管理程序);它能够控制虚拟机和给多个客户机分配资源. 另一方面, kvm是linux的一部分, 可使用通常的linux调度器和内存管理. 这意味着kvm更小更易使用.
另一方面, Xen同时支持全虚拟化和半虚拟化(修改过的客户机能有更好的性能). kvm当前不支持半虚拟化.
 
i686和x86_64有什么区别  :386几乎适用于所有的 x86平台,不论是旧的 pentum或者是新的 pentum-IV K7系列的 CPU等等,都可以正常的工作!那个 i指的是 Intel兼容的 CPU的意思,至于 386不用说,就是 CPU的等级啦! i586就是 586等级的计算机,那是哪些呢?包括 pentum第一代MMX CPU AMD K5, K6系列 CPU ( socket 7插脚 )等等的 CPU都算是这个等级; i686 pentun II以后的 Intel系列 CPU,及 K7以后等级的 CPU都属于这个 686等级!x86_64就是64位的x(代表不确定。可以是3456、)86,是个统称,如果是i686_64也是属于x86_64的。
 
rpm -qa|grep smaba 查看是否安装chkconfig –list|grep smb查看在运行状态下是否开启
 
 
3

.Kdump

3.1

.PQ1000 rhel5.10bata kdump

 
(1).登陆PQ
在浏览器url栏输入193.168.1.100:8081(建议使用firefox浏览器)
按顺序登陆:输入用户名/密码—〉 login —〉 partition —〉 powercontrol —〉 partion2(dump组专属PQ)—〉 console —〉 video
 
(2).配置
#Yum install –y system-config-kdump 安装kdump服务
#service kdump restart
(#Service kdump status 
Kdump is operational  确认kdump服务
如果service kdump restart failed 或kdump is not operational, 查看/boot/grub/grub.conf文件是否有crashkernel=128M@16M,查看/etc/kdump.conf文件是否有vmcore文件的保存路径,配置完成后,个人建议系统重启)
vmlinux一般路径为:/usr/lib/debug/lib/modules/2.6~/vmlinux
#yum install crash
以上作提醒内容对待
/etc/kdump.conf配置文件的设置(设置kdump文件的存放路径):
    ext4  LABEL= …或ext4  UUID=…
    path  /                           
   
    注:#blkid /dev/sdb3 查看sdb3的UUID
        #man kdump.config 可查看各种配置的含义
       
(3).强制触发方式:
a. #echo c > /proc/sysrq-trigger
 
#mount /sdd2 /mnt/
#cd /mnt/data/kdump/tools/rh(tab键补全)
#insmod lib/panic.ko   加载模块  加载失败时要查看所挂载的目录是否正确
b. #echo c > /proc/driver/panic
 
#mount /sdd2 /mnt/
#cd /mnt/data/kdump/tools/rh(tab键补全)
#insmod lib/panic.ko   加载模块  
c. #echo p > /proc/driver/panic 
               
#mount /sdd2 /mnt/
#cd /mnt/data/kdump/tools/rh(tab键补全)
#insmod lib/altsysrq.ko
d. #echo c > /proc/driver/altsysrq
(/etc/sysctl.conf/kernel.sysrq = 1时,重启后#cat /proc/sys/kernel/sysrq  为1 ,此时此条命令才会发挥作用)
 
#service ipmi start  开启ipmi服务
e. #ipmitool chassis power diag
 
注:a.由于空间问题,每次执行强制触发前,删除以前的vmcore
b.重启kdump服务(service kdump restart)
c.产生的vmcore文件的路径:在/etc/kdump.conf中给出,在vmcore文件产生的过程中,也显示了vmcore文件将要存放的路径(因系统问题,有时已知路径并非实际路径,此时可在/dev/sd(a,b,c等)磁盘中寻找)
 
(4).Vmcore文件查看
#crash  vmcore文件  vmlinux
   crash>  进入crash命令行模式
crash>ps
crash>bt
crash>bt –a
crash>log
    注:将存有vmcore文件的磁盘挂载到mnt下,再使用crash
 
(5). 过程中的问题及解决方法
a. 问题:Ext3-fs warning: maximal mount count reached,running
e2fsck is recommended
分析:这个警告的意思是说,这个磁盘的挂载次数已经超过了设定的最大次数而且没有执行过磁盘检查工作,要我们马上执行磁盘检查
解决:一、df 查出磁盘的挂载点 (挂载点是一个目录)
二、tune2fs -l 挂载点 | grep ^M 查看设置的最大挂载次数
三、unmount 挂载点
e2fsck -p 挂载点 (不提示自动修复错误) 这一步可能会执行很长时间
e2fsck -n 挂载点 (以只读方式检查磁盘,不会修改磁盘信息)
当然也有可能是其他原因引起的,如/etc/kdump.conf配置文件的设置ext4  LABEL= …或ext4  UUID=…并且ext4  /dev/sdb3  导致运行过程中重复挂载
b. 问题:# insmod panic.ko
insmod: error inserting 'panic.ko': -1 File exists      
解析:因为载入的是已经载入内核的模块,这时就会出现这样的错误提示信息。
 
3.2

.检证项目 fjsnap 的kdump(我用的是虚拟机)

(1).创建磁盘
进入虚拟机设置项,Create 两块磁盘(sdb  sdc   建议8GB),名不正则言不顺,执行如下命令
#parted /dev/sdb mklabel msdos
#parted /dev/sdc mklabel msdos
   
(2).安装
压缩包:FJSVdumptools-RHEL5-2.1.9-0-x86_64.tar 
FJSVsnap-4.00-6.tar
    分别解压缩/安装
#tar zxvf FJSVdumptools-RHEL5-2.1.9-0-x86_64.tar
#cd FJSVdumptools
#./INSTALL.sh
 
#tar zxvf FJSVsnap-4.00-6.tar
#cd FJSVsnap
#./INSTALL.sh
   
    Yum安装expect/busybox/kexec-tools及rpm安装kdump服务支持
#yum install expect
#yum install busybox
#yum install kexec-tools
#rpm –ivh kernel-debuginfo-*
(kernel-debuginfo-* 一般是两个rpm包,这两个包必须与所使用的系统的版本号对应)
(3).从svn上拷贝testsuite文件夹
#cd testsuite
#vim config
DISK=…(sdb sdc)…
DISK_… = sdc
HOST=127.0.0.1
PASS=(自个用户密码)
 
保存退出后赋予所有目录下的所有run.sh 可执行权限
(4).#run.sh
3.3

将vmcore 保存到远程

当A出现kernel panic/crash的时候,用来存储A的vmcore的服务器B,IP地址为 192.168.0.200
3.3.1 scp

形式

(1)  服务器A上,将 crashkernel=128M@16M 加入到 /etc/grub.conf 中的启动kernel的参数后面,重启服务器。
(2)  服务器A上,配置/etc/kdump.conf
net username@192.168.0.200
path /var/crash
default reboot
(3)  服务器A上,配置kdump,输入服务器B上的用户username的密码
# /etc/init.d/kdump propagate(service kdump propagate)
Generating new ssh keys… done.
username@192.168.0.200′s password:
/home/username/.ssh/kdump_id_rsa.pub has been added to ~/home/username/.ssh/authorized_keys2 on 192.168.0.200
(4)  服务器A上,启动kdump服务
#/etc/init.d/kdump start(service kdump restart)
(5) 在服务器A上,执行
# echo “c” >/proc/sysrq-trigger
这会导致服务器A的kernel panic,当A重启的时候,会vmcore文件scp到服务器B上,注意,Vmcore的大小与服务器A的内存大小一致,所以要保证服务器B上有足够的空间
3.3.2 nfs

形式

    (1) 配置好服务器B的nfs 建立共享目录/export/tmp
        #mkdir –p /export/tmp
        #chmod 777 /export
        #chmod 777 /export/tmp
        #service iptables stop (iptables -F)
        #service nfs start
(2) 服务器A的/etc/kdump.conf配置
       net 192.168.0.200:/export/tmp
       path /
         default reboot
    (3) 服务器A 
#service kdump restart
4

.数据传输

4.1

.pscp.exe

    windows与linux间文件传输:pscp.exe –r 文件输出路径文件输入路径
    例:pscp.exe  –r  root@192.168.65.134:/root/gdb.zip  E:
    注:-r是在传输文件夹时所需要的,传输一般的单个文件或压缩文件时,无需 –r
 
4.2

.Scp

scp -p port user@serverip:/home/filename /home/filename
以上端口p 为参数,port 端口 user 为ssh user serverip 为远程服务器ip或者域名 ,/home/user/filename 为远程服务器的文件名 /home/user/filename 为本地服务服务器的文件名。该命令的作用就是将远程的filename复制到本地对应的目录下面。
linux 的 scp 命令可以在 linux 之间复制文件和目录;
 
    命令基本格式:
scp [可选参数] file_source file_target
4.2.1

.从本地复制到远程

a.复制文件:
* 命令格式:
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
 
第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程    的目录,文件名字不变,第4个指定了文件名;
* 例程:
scp /home/music/1.mp3 root@www.cumt.edu.cn:/home/music
scp /home/music/1.mp3 root@www.cumt.edu.cn:/home/music/002.mp3
scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/music
scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/music/002.mp3
 
b.复制目录:
* 命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
 
第1个指定了用户名,命令执行后需要再输入密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;
 例程:
scp -r /home/space/music/ root@www.cumt.edu.cn:/home/others/
scp -r /home/space/music/ www.cumt.edu.cn:/home/others/
scp –r /root/gdb root@192.168.65.194:/root/
 
上面命令将本地 music 目录复制到远程 others 目录下,即复制后有远程有 ../others/music/ 目录
4.2.2

.从远程复制到本地

从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可;
例如:
scp root@www.cumt.edu.cn:/home/music /hom/music/i.mp3
scp -r www.cumt.edu.cn:/home/others/ /home/music
4.2.3

.第三方控制  

使用第三台linux 主机控制另外两台linux主机的数据传输,例如:使用ip为:192.168.65.137控制ip为:192.168.65.149  192.168.65.150 主机间的数据传输
#scp –r root@192.168.65.149:/root/gdbroot@192.168.65.150:/root/
回车后,会两次让输入密码,分别为数据源主机用户密码和数据目标主机用户密码
 
 
5

.Makefile

5.1

.Makefile for .ko

  参见本文档所在目录下的 panic/Makefile或altsysrq/Makefile
如果由多个C文件来构造一个模块,那么C文件名不能和模块名一样,在RESMAN_CORE_OBJS:后添加.o文件。
lsmod: 列出已经被内核调入的模块
insmod:将某个module插入到内核中
rmmod:将某个module从内核中卸载
6

.安装系统

6.1

通过iso安装

6.1.1

实体机安装

6.1.1.1硬盘安装
1.将镜像中的images和镜像放置本地在fat格式的硬盘中
2.重启,按c键进入grub命令行
3.键入命令,进入images所在硬盘,如:root hd(0,0)
4.键入命令
        grub>kernel /images/pxeboot/vmlinuz
        grub>initrd /images/pxeboot/initrd.img
5.键入boot命令,开始按装
6.选择硬盘安装,确定iso所在硬盘
7.确定并开始安装
6.1.1.2 nfs安装
1.将镜像中的images放置在本地的fat或linux的ext格式的硬盘中
2.重启,按c键进入grub命令行
3.键入命令,进入images所在硬盘,如:root hd(0,0)
4.键入命令
        grub>kernel /images/pxeboot/vmlinuz
        grub>initrd /images/pxeboot/initrd.img
5.键入boot命令,开始按装
6.选择nfs方式,输入iso所在路径
7.确定并开始安装
6.1.2

虚拟机安装

6.1.2.1 vmware虚拟机安装(此处略)
6.1.2.1 kvm虚拟机安装
1.检查CPU
和 Xen 不同,KVM 需要有 CPU 的支持(IntelVT 或 AMD SVM),在安装 KVM之前检查一下CPU是否提供了虚拟技术的支持:
# grep -E –color 'vmx|svm' /proc/cpuinfo
flags :fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dtsacpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmonpebs bts rep_good aperfmperf pni dtes64 monitor ds_cplvmxest tm2 ssse3 cx16 xtpr pdcm xsave lahf_lm tpr_shadow vnmi flexpriority
flags :fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dtsacpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmonpebs bts rep_good aperfmperf pni dtes64 monitor ds_cplvmxest tm2 ssse3 cx16 xtpr pdcm xsave lahf_lm tpr_shadow vnmi flexpriority
如果vmx和svm都未出现,那么cpu应该不支持虚拟技术
RHEL6系列安装虚拟化工具可以在安装系统的时候选择安装(这里不作介绍),这里主要介绍的是系统安装之后使用YUM安装虚拟化工具的过程。
 
2.yum安装虚拟化
为了在RHEL6上使用虚拟化至少要安装qemu-kvm和qemu-img包。这些安装包提供用户级别的KVM模拟器和RHEL6系统主机磁盘镜像管理。
# yum install qemu-kvm qemu-img
其他一些额外
# yum install virt-managerlibvirt libvirt-python python-virtinst libvirt-client virt-viewer
(
virt-manager: virt-manager, also known as Virtual Machine Manager, provides agraphical tool for administering virtual machines. It uses libvirt-clientlibrary as the management API.
libvirt: he libvirt package provides the server and host side librariesfor interacting with hypervisors and host systems. The libvirt package providesthe libvirtd daemon that handles the library calls, manages virtualized guestsand controls the hypervisor.
libvirt-python:The libvirt-python package contains a module thatpermits applications written in the Python programming language to use theinterface supplied by the libvirt API.
python-virtinst:Provides the virt-install command for creatingvirtual machines.(提供virt-install命令安装虚拟机)
libvirt-client:The libvirt-client package provides theclient-side APIs and libraries for accessing libvirt servers. Thelibvirt-client package includes the virsh command line tool to manage andcontrol virtualized guests and hypervisors from the command line or a specialvirtualization shell.
virt-viewer:开启图形控制台安装虚拟客户机需要
    )
也可以使用 yum groupinstall
# yum groupinstall -y Virtualization "Virtualization Client""Virtualization Platform" "Virtualization Tools"
    #service start libvirtd
正在关闭libvirtd 守护进程: [确定]
启动libvirtd 守护进程: [确定]
# chkconfig libvirtd on
3.下面开始安装想要的虚拟机(步骤略)
6.2

没有iso的情况下的安装

假设:   系统A没有iso只有rpm包, 系统B有iso。 先要安装系统A。
方法:   1.采用6.1的方法,先安装B;
        2.使用up2date通过rpm包升级,步骤如下:
            a.修改up2date升级所需的配置文件
# vi /etc/sysconfig/rhn/sources   (作如下修改)
1)将up2date default注释掉
2)在该行#dir my-favorite-rpms /var/spool/RPMS/下添加rpm包路径信息:
             dir  名字(随便起)  rpm包所在的文件夹
b.执行以下命令,开始升级
# rpm –import /usr/share/rhn/RPM-GPG-KEY
# up2date -uf
 
 
 
 
 
7 常用工具
7.1svn客户端
7.2vncviewer
7.3putty
 
 

问题及解决方法
1. 进不了系统的相关问题:
1.1出现反复重启的情况,可能原因1.crashkernel=128M@16M的数值改动了,一般情况下,他的值为128M@16M
1.2启动时出现如下信息并停留在此
kernel panic-not syncing: Attempted to kill init
pid:1,comm:init not tainted                   #1
~~~ 
此时重启,按e键,在kernel那一行的最后添加selinux=0,进入系统后,将/etc/selinux/config文件中SELINUX一行改为SELINUX=disabled,保存退出。1.3忘记root密码了
开机进入单用户,即开机时按e键,在kernel的内容后加single。
进入后输入命令passwd后设置新密码。
 

配置DNS IP步骤:

关闭防火墙:service iptables stop

             Chkconfig iptables off

Service NetworkManager stop

Chkconfig NetworkManager off

Vim /etc/sysconfig/network-scripts/ifcfg-eth0

设置: Device = eth0

HWADDR=00:0C:29:67:8B:3A

NM_CONTROLLED=no

ONBOOT=yes

IPADDR=192.168.1.108

BOOTPROTO=static

NETMASK=255.255.255.0

TYPE=Ethernet

GATEWAY=192.168.1.1

#DNS1=202.206.1.120

IPV6INIT=no

USERCTL=no

然后重启netowrk

Service network restart

配置无线网:

Ifconfig wlan0 up

 Iwlist wlan0scan

Iwconfig wlan0 ESSID “lnikname ” KEY”password”open

Iwconfigwireless-tools软件包中

 

(1) 下表に記載されている選択対象パッケージを選択し、それ以外のパッケージは選択を解除してください。

カテゴリ

チェックを入れる項目

option packages

Base System

Base

 

 

Debugging Tools

 

 

Network file system client

 

 

Networking Tools

 

 

Performance Tools

 

 

System Management

OpenIPMI

ipmitool

net-snmp net-snmp-utils

Servers

FTP Server

 

 

NFS file server

 

 

Network Infrastructure Server

 

 

Server Platform

 

 

System administration tools

 

Web Service

なし

 

Databases

なし

 

High Availability

なし

 

Virtualization

なし

 

Desktops

なし

 

Applications

なし

 

Development

Development Tools

expect

Languages

なし

 

 

 

配置DNS IP步骤:

关闭防火墙:service iptables stop

             Chkconfig iptables off

Service NetworkManager stop

Chkconfig NetworkManager off

Vim /etc/sysconfig/network-scripts/ifcfg-eth0

设置: Device = eth0

HWADDR=00:0C:29:67:8B:3A

NM_CONTROLLED=no

ONBOOT=yes

IPADDR=192.168.1.108

BOOTPROTO=static

NETMASK=255.255.255.0

TYPE=Ethernet

GATEWAY=192.168.1.1

#DNS1=202.206.1.120

IPV6INIT=no

USERCTL=no

然后重启netowrk

Service network restart

配置无线网:

Ifconfig wlan0 up

 Iwlist wlan0scan

Iwconfig wlan0 ESSID “lnikname ” KEY”password”open

Iwconfigwireless-tools软件包中

 

/usr/bin/setenforce 修改SELINUX的实时运行模式

Setenforce 1 设置为enforcing模式

Setenforce 0 设置为permissive模式

如果要彻底禁用SELINUX 需要在/etc/sysconfig/selinux 中设置参数selinux=0

或者在、/etc/grub.conf中添加这个参数/usr/bin/setstatus –v

*想要不重启就关闭SELINUX 的方法:setforce 0

RED HAT fedora修改/etc/sysconfig/selinuxSELINUX = DISABLED也可以,但要重启

*要知道现在是否在使用selinux #getenforce  

 

1.root (hdx,x) 
#grub的根目录所在的分区,不确定在哪个分区可以敲入root 后按tab键进行索引,也可以用命令 find /boot/grub/stage1 进行查看,此命令会列出使用stage1引导文件的分区(这里stage1就不做解释了),使用该分区就可以了。
2.kernel /boot/vmlinuz-2.6.xx ro root=LABEL=/
#kernel命令用来指定内核所在的位置,"/"代表(hdx,x)xx根据你系统的内核版本进行相应的改变即可(不知道版本通过安装的linux版本查一下内核版本就可以了),ro代表只读模式
3.initrd /boot/initrd-2.6.xx.img
#用来指定初始化ramimg文档所在位置,和第3步的版本保持一致即可
4.boot
#开始引导系统

在“从硬盘安装fedora 8 ”中曾经稍微提到过,grub是一个多系统的启动管理器,不但有linux版本的grub,也有windows版本的grub。上次从硬盘安装系统用的就是windows版本的grub。可以说,grub是一个非常强大的多系统启动管理器,具有多重系统引导,交互式操作,可设置grub启动密码,可映射硬盘,可以定制开机画面等等特点。通过命令行启动系统就是交互式操作的一个应用,至于其它应用,这里就不再一一列出。想要深入了解它的话,可以看一下grub的手册:http://www.linuxsir.org/main/doc/grub/grubmanual/index.html 。说来惭愧,我还没完全看过。。哈哈。。
  闲话少说,先把通过命令行启动系统的过程列出来。为了解释方便,特标上行号:
root (hd0,2)
kernel /vmlinuz-2.6.26.5-28.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.26.5-28.fc8.img
boot
  怎么样?linux的启动命令行是不是很简洁啊?下面就一一解释这几命令。

  第1行命令:指定/boot所在的分区。
  要是不知道自己的/boot分区在哪里,没关系,先输入root (hd0,然后按Tab键,它会显示可能的分区,然后根据分区类型判断/boot分区。我就是这么做的……所以Tab键是linux里很好用的一个键。这里指定/boot分区并不是必须的,在这里省略的话要在kernel以及initrd中指定,即:kernel (hd0,2)/vmlinuz-2.6……和initrd (hd0,2)/initrd-2.6……
  关于"hd0,2”,是指第一块硬盘的第三个分区,这是一个主分区。linux里的分区表示方法有两种:一是像"hd0,2"这种纯数字表示法,它是以"hd0,0"开始,意思是第一块硬盘的第一个分区;第二块硬盘就是hd1。还有一种是hda1这一种,它也表示第一块硬盘的第一个分区;第二块硬盘就是hdb。两种表示法用在不同的场合,纯数字表示法一般用在grub中指定/boot分区;第二种方法是日常使用的表示法,硬盘挂载等都用这种表示法。关于主分区与扩展分区,这里稍微提一点:扩展分区是从hdx5或hdx,4开始的,其中x代表硬盘号。要更加详细的了解linux的分区表示法,Google一下。

  第2行命令:指定内核映像及根分区。
  输入kernel /vmlinuz,然后按Tab键补全内核映像全名;补全以后可以看到我的fedora内核映像是vmlinuz-2.6.26.5-28.fc8。如果有一个以上的内核,它会全部显示出来让你选择(这种情况遇到过,从8升级到9以后,我的启动菜单里就有了两个映像)。还有就是,我的/boot分区不是在根分区中,而是一个独立的分区;如果/boot分区不是一个独立分区,而是位于根分区中,就要这样写: kernel /boot/vmlinuz-2.6.26.5-28.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet,下面的initrd要写成:initrd /boot/initrd-2.6.26.5-28.fc8.img。映像后面的部分是用来指定根分区的,要手动输入。ro的意思是read only,root=/dev/VolGroup00/LogVol00是根分区位置,rhgb意思是图形化启动过程,quiet意思是不要显示启动信息。在实际操作中,我发现内核映像以后的部分其实不是必须的;也就是说,即使不输入这部分内容,不指定根分区,不指定图形化启动过程,不省略启动信息,也可以正确启动。对于不必指定根分区,是否跟我的系统是单内核有关系?
  这行命令要多理解一下。首先,vmlinuz中,vm是指vritual memery,linuz的意思是说,这一个经过压缩的内核映像。还有,这一行命令中的root跟第一行命令中的root表达的不是同一意思。第一行命令中的root指的是系统的启动分区,即/boot分区;第二行命令中的root指的是系统的根分区,即/分区。要详细理解两者的区别,就牵涉到linux文件系统及目录结构,它是linux中关键性的概念之一,我会找个时间写一些关于它东西,浅谈一下我对它的理解。"root="后面的"/dev/VolGroup00/LogVol00"就是根分区的位置;看起来是不是怪怪的?因为我的根分区用的不是普通的硬盘分区,而是逻辑卷,术语叫LVM(logical volume manager)。这个也是linux里一个很重要的东西。LVM要结合linux硬盘分区及目录结构来理解,这里就不谈了,否则会越扯越远,偏离正题。

  第3行命令:指定initrd.img
  initrd即initial ramdisk,字面上理解是初始化RAM磁盘。它实际上是一个临时的文件系统,而且是与内核绑定在一起的。一般用来加载必须的系统文件、驱动程序和存储设备等,系统启动以后它立刻被释放。据说,在没有其它存储设备的情况下,它就是永久的系统。我不是太了解,也写不出更多的东西来。总之,initrd.img是一个与内核绑定在一起的,用来加载必须的系统文件的临时文件系统。

  第4行命令:启动系统。输入boot,敲回车键即可启动系统。
  系统启动以后,再想一下这个手动启动的过程,如果了解grub的话,手动启动系统并不复杂。而启动菜单呢,很像是根据我们手动输入的内容编写而成的一个脚本。这个“脚本”让你在启动系统时不必每次都手动输入,所以这个“脚本”还是很有用的,我们还是手动编写一个吧。
  若了解linux目录结构的话,就会知道启动菜单在根分区的boot文件夹下的grub文件夹中。grub文件夹中还有一个menu.lst,它是grub.conf的链接文件。你可能有点疑问:你的/boot分区不是一个独立的分区,不在根分区中么?其实这就是linux与windows不同的地方之一,它是通过挂载的方式与根分区产生关系的,这牵涉到文件系统和目录结构方面的东西,这里不详谈。找到并打开grub文件夹,创建一个grub.conf,你需要root权限!

  grub.conf该怎么写呢?和上面输入的命令基本相似。下面是我虚拟机中fedora的grub.conf的内容:

其中,加#号的都是注释文字,启动时是被忽略的。核心部分如下:
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
#hiddenmenu title Fedora (2.6.26.5-28.fc8)
  root (hd0,0)
  
kernel /vmlinuz-2.6.26.5-28.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
  
initrd /initrd-2.6.26.5-28.fc8.img
  第一行,default项,表示默认启动的系统。0代表按照grub中的顺序默认启动第一个系统,改为1,则是默认启动第二个系统。以此类推。第二行,timeout项,表示选择菜单等待时间为5秒。这个可以自己设定选择菜单等待的时间。第三行,splashimage项,表示开机启动时出现的背景画面。若不想让画面显示,可以在前面加#号以忽略。第四行,hiddenmenu项,表示隐藏选择菜单,加#号表示不隐藏。若装了双系统又不想让它出现选择菜单,可以把前面的#号去掉。第五行,title项,选择菜单上出现的系统标题。下面的就不用再解释了。。。

  仿照这个grub.conf另外写一个启动菜单,注意我实际电脑中的/boot分区是(hd0,2),其它的完全照搬。然后把它放在/boot/grub中,就可以正常启动fedora了。但是我的实际的电脑中装的是xp和fedora双系统,按照那个启动菜单虽然可以正常启动fedora,却不能正常启动xp,仍然需要手动输入。所还需要在刚才的启动菜单尾部加上一部分:
title windows xp
  rootnoverify (hd0,0) #我实际电脑中xp系统是放在第一个分区中的
  chainloader +1
  若想让xp系统默认启动,把default项改为1。xp这一部分的启动菜单用了链式装入器,也不必理会什么意思,照搬就可以了。s

ThinkPad E40无线网卡驱动安装 FOR CENTOS6.3

发表于7个月前(2013-04-22 16:49)   阅读(449) | 评论(40人收藏此文章,我要收藏

赞0

centosRTL8192SE无线网卡驱动


1.看一下咱们用的本本的无线是咋子无线网卡,如下:

  1. [root@liaohg Downloads]# lspci | grep Wireless
  2. 03:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8191SEvB Wireless LAN Controller (rev 10)

2.到台湾官网:http://www.realtek.com.tw上下载相应的网卡源码驱动下来,编译安装
   打开网站后,在search框中输入 RTL8192SE,在搜所结果里面找出自己的驱动下载下来 (根据内核版本级别,会有两个linux版本的压缩包,我尝试安装高版本,没成功,低版本可以)
3.接下来就是解压,make & make install
(此处会出现问题,一定要在make之前确保已安装核心对应的如下两个rpm包

kernel-headers-2.6.32-279.el6.i686
kernel-devel-2.6.32-279.el6.i686

使用命令uname -r查看核心版本

如果在make时出现,/lib/modules/2.6.32-279.el6.i686/build/ 无该文件或目录

使用ln -s targets name 创建对应到/usr/src/kernels/'uname -r'/的软链接

)
4.加载无线模块到内存中.

  1. [root@liaohg Downloads]# modprobe r8192se_pci
  2. [root@liaohg Downloads]# lsmod | grep pci
    r8192se_pci           462298  0 
  3. [root@liaohg Downloads]# iwconfig
    wlan0     Link encap:Ethernet  HWaddr 88:9F:FA:FF:DF:94  
              inet6 addr: fe80::8a9f:faff:feff:df94/64 Scope:Link
              UP BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:0 (0.0 b)  TX bytes:1776 (1.7 KiB)
              Interrupt:17 Memory:f7e88000-f7e88100 

    [root@liaohg Downloads]# 

5.如果安装了NetworkManager,可以在X系统中看到右下角下面看到无线的连接信息,也可以看到搜所到的无线信息号

默认情况下,CentOS 6.3不支持Widows NTFS硬盘分区读写,要想把NTFS格式的磁盘挂载到CentOS 6.3下面
需要安装第三方的插件ntfs-3g,这里我们采用编译安装插件。
1、安装编译器,否则不能成功编译。
yum install gcc
根据提示按Y安装完成

2、安装ntfs-3gcd

/home #进入/home目录,把软件下载到此目录
wget http://tuxera.com/opensource/ntfs-3g_ntfsprogs-2011.4.12.tgz #下载
tar zxvf ntfs-3g_ntfsprogs-2011.4.12.tgz #解压
cd ntfs-3g_ntfsprogs-2011.4.12 #进入目录
./configure #编译
make #安装
make install #安装
cd .. #返回上一级目录
rm -r -f ntfs-3g_ntfsprogs* #删除安装程序包
3、查看使用
fdisk -l #显示Widows NTFS硬盘分区信息
#####################################################################

Disk /dev/sda: 160.0 GB, 160041885696 bytes
240 heads, 63 sectors/track, 20673 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x18fd18ff

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        5093    38503048+   7  HPFS/NTFS
/dev/sda2            5094       20673   117784800    f  W95 Ext'd (LBA)
/dev/sda5            5094        9357    32234496    7  HPFS/NTFS
/dev/sda6            9358       13621    32235520    7  HPFS/NTFS
/dev/sda7           13622       17885    32233472    7  HPFS/NTFS
/dev/sda8           17885       17899      102400   83  Linux
/dev/sda9           17899       18731     6291456   83  Linux
/dev/sda10          18731       19009     2097152   82  Linux swap / Solaris
/dev/sda11          19009       19286     2097152   83  Linux
/dev/sda12          19287       20673    10484736   83  Linux

###################################################################
以上信息显示的是我的Widows NTFS硬盘分区信息,总共160G,有四个NTFS分区

4、挂载分区,下面我们把
/dev/sda1分区挂载到/mnt/winC
/dev/sda5分区挂载到/mnt/winD
/dev/sda6分区挂载到/mnt/winE
/dev/sda7分区挂载到/mnt/winF

进入/mnt目录,新建winC winD winE winF 四个挂载目录
cd /mnt
mkdir winC winD winE winF

mount -t ntfs-3g /dev/sda1 /mnt/winC #挂载
mount -t ntfs-3g /dev/sda5 /mnt/winD
mount -t ntfs-3g /dev/sda6 /mnt/winE
mount -t ntfs-3g /dev/sda7 /mnt/winF

分区挂载完成,现在可以进入/mnt目录下面查看对应的文件夹,即就是你移动硬盘的分区

如果想卸载,可以用下面的命令

umount /dev/sda1 #卸载
umount /dev/sda5
umount /dev/sda6
umount /dev/sda7

5、如果想让系统开机自动挂载移动硬盘,编辑/etc/fstab文件。
cp /etc/fstab /etc/fstabbak #更改之前先备份
vi /etc/fstab #编辑

用insert命令在最后添加以下信息,以读写方式挂载磁盘

/dev/sda1 /mnt/winC ntfs-3g defaults 0 0
/dev/sda5 /mnt/winD ntfs-3g defaults 0 0
/dev/sda6 /mnt/winE ntfs-3g defaults 0 0
/dev/sda7 /mnt/winF ntfs-3g defaults 0 0

执行ESC命令退出。
:wq!保存,退出
现在只要重启机器,会自动挂载移动硬盘

取消挂载问题:
umount的时候出现如下提示:
[root@rekfan.com /]# umount /dev/sda1
umount: /mnt/upan: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

解决方法:
[root@rekfan.com /]# lsof -w /mnt/upan
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
bash    31761 root  cwd    DIR   8,18     8192 2316326 /mnt/upan/rekfan.com_120526
[root@rekfan.com /]#

使用 lsof -w /mnt/upan 可以看出,有个命令窗口在/mnt/upan/rekfan.com_120526目录上,关闭这个窗口,或退出这个挂载目录,再使用 umount 即可安全退出挂载的设备!

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注