linux笔记5(设备文件、文件系统

来源:互联网 发布:类似快聊软件 编辑:程序博客网 时间:2024/05/29 11:16

设备文件

linux沿袭Unix的风格,将所有设备认成一个文件。设备文件分两种:块设备文件(b),字符设备文件(c); 设备文件一般存放在 /dev 目录下。

常用的块设备文件

  1. /dev/hd[a-t]:IDE设备
  2. /dev/sd[a-z]:SCSI设备
  3. /dev/fd[0-7]:标准软驱
  4. /dev/md[0-31]:raid设备
  5. loop[0-15]:本地回访设备
  6. ram[0-19]:内存

 

/dev/null:无限数据接收设备

/dev/zero:无限零资源

/dev/tty[0-31]:虚拟终端

/dev/ttyS[0-9]:串口

/dev/lp[0-3]:并口

/dev/console:控制台

/dev/fb[0-31]:framebuffer

例:

[root@redhat root]# cd /dev

[root@redhat dev]# ls -l > /dev/null     //将输出的设备送到null设备文件,功能:所有的输出被null丢弃掉。

[root@redhat dev]# ls -l > /dev/zero        //将当前的目录信息输出到zero设备

[root@redhat dev]# echo 123 > /dev/tty2    //123输出到tty2虚拟终端

 

常用的符号连接设备文件

/dev/cdrom à /dev/hd[a-t],sd[a-z]

/dev/modem à /dev/ttyS[0-9]

/dev/pilot à /dev/ttyS[0-9]

 

设备文件的使用

cp /dev/fd0 /dev/fd1

将第一个软驱中的软盘拷入第二个软驱中的软盘

dd if=/dev/hda of=/root/mbr bs=512 count=1

备份第一个硬盘上的mbr/root目录下mbr文件

 

dd指令是一个功能强大的copt命令,支持在拷贝文件的过程中转换文件格式,支持指定范围的复制,常用参数:

if=文件名:指定源文件

of=文件名:指定目标文件

bs=xxx:指定块的大小

count=n:指定复制块的数量

 

[root@redhat dev]# dd if=/etc/passwd of=/root/passwd.bak ///etc/passwd备份到/root/passwd.bak

3+1 records in

3+1 records out

[root@redhat dev]# dd < /root/install.log > /root/install.log.bp //备份install.log文件

[root@redhat root]# rm -f install.log    //删除

[root@redhat root]# dd < install.log.bp > /root/install.log    //还原

[root@redhat root]# dd < /dev/sda1 > /opt    //备份sda1这个分区

[root@redhat root]# dd < /dev/sda > /root/mbr bs=512 count=1    //备份第一个硬盘的第一个扇区

1+0 records in

1+0 records out

 

mknod建立设备文件

语法:mknod 文件名 文件类型 主号 从号

主号与从号可以在 /usr/src/linux-2.4/Documentation/devices.txt中找到。

[root@redhat root]# mknod /dev/hda55 b 3 5        //创建一个hda55设备

 

分区

[root@redhat root]# fdisk -l /dev/sda    //列出硬盘sda分区的详细信息

[root@redhat root]# fdisk /dev/sda        //操作硬盘sda分区

The number of cylinders for this disk is set to 1044.

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): m

Command action

a toggle a bootable flag

b edit bsd disklabel

c toggle the dos compatibility flag

d delete a partition

l list known partition types

m print this menu

n add a new partition

o create a new empty DOS partition table

p print the partition table

q quit without saving changes

s create a new empty Sun disklabel

t change a partition's system id

u change display/entry units

v verify the partition table

w write table to disk and exit

x extra functionality (experts only)

Command (m for help):

[root@redhat root]# partprobe     //让分区表立刻生效

[root@redhat root]# mkswap /dev/sda6        //(首先用"t"改变分区的id82,再)sda的第6个分区格式化成swap分区

[root@redhat root]# free        //查看内存

[root@redhat root]# dd < /dev/zero > /tmp/swap bs=4k count=100    //创建一个100Mswap文件

[root@redhat root]# mkswap /tmp/swap        //格式化为swap文件格式,并加入到swap分区

[root@redhat root]# free

[root@redhat root]# swapoff /tmp/swap    //将这个swap文件脱离swap分区

 

文件系统

不同的文件系统存放、搜索文件的方式都有不同,Linux支持多种文件系统的读写。linux自身最主要使用的是ext2/ext3文件系统。

ext2/ext3文件系统支持rwx权限及文件属性(attributes); ext2/ext3文件系统采用block+inode方式存放文件;ext2/ext3文件系统上有一块空间被称为超级块(superblock)用于存放文件系统的元数据,诸如卷标名、block数、inode数等等;inode存放文件的元数据,包含文件权限、属性、更改时间等等数据。

 

例:

[root@redhat root]# ls –il    //列出目录下的文件的索引结点号以及详细信息

[root@redhat root]# df    //查看硬盘分区信息

[root@redhat root]# dumpe2fs /dev/sda1    //查看第一个分区的超级块信息

 

ReiserFS文件系统

  1. 一个非常优秀的文件系统
  2. 可轻松管理上百G的文件系统
  3. 先进的日志机制
  4. 高效的磁盘空间利用
  5. 独特的搜寻方式

 

文件属性

  1. ext2/3文件系统中,对每一个文件,还提供额外的属性支持
  2. 用户可以用lsattr来检查文件的属性
  3. 系统用户可以用chattr来改变文件的属性。 +号添加、-号去除

例:

[root@redhat root]# chattr +i install.log    //给文件设定一个i属性,设定之后,文件无法被删除悠

[root@redhat root]# lsattr install.log

----i-------- install.log

[root@redhat root]# chattr -i install.log    //删除文件的i特殊属性

 

ext3文件系统

  1. ext3文件系统即一个添加了日志功能的ext2,ext2文件系统无缝兼容
  2. ext2文件系统可以通过增加日志的方式简单地升级成为ext3文件系统
  3. ext3文件系统支持三种日志模式:

    规则(默认,公记录元数据);日志化(将数据象元数据一样记录入日志;写回(只在fsck时发生)

[root@redhat root]# cat /proc/filesystems        //查看当前系统所启用的文件系统

 

创建文件系统

常用的创建文件系统的工具:

mkfs:可以用于创建各种文件系统,由-t参数指定。

mke2fs:创建ext2/3文件系统,支持指定block大小等功能。

例:

[root@redhat root]# mkfs -t ext2 /dev/sda5    //sda5分区上创建ext2文件系统

[root@redhat root]# dumpe2fs -h /dev/sda5    //查看sda5的超级块信息

[root@redhat root]# mke2fs -b 2048 /dev/sda5    //sda5创建ext2文件系统,并指定块大小为2048kB

[root@redhat root]# mke2fs -i 1028 /dev/sda5    //把索引结点的大小设置为1028kB

[root@redhat root]# mke2fs -L data /dev/sda5    //sda5创建一个名为-L的卷标

[root@redhat root]# mke2fs -j /dev/sda5        //sda5创建ext3文件系统

[root@redhat root]# mount /dev/sda5 /opt        //sda5挂载到/opt目录下

[root@redhat root]# cd /opt

[root@redhat root]# touch test

[root@redhat root]# ls

[root@redhat root]# umount /opt        //卸载/opt目录

 

mount使用

1.-t 文件系统类型:用于指定挂载文件系统的类型,一般这个参数是必须的。

2. 参数:补允追加的参数

3.ext2文件系统默认采用的参数:rwsuiddevexecautonouserasync

例:

[root@redhat root]# mount -o ro /dev/sda5 /opt        //挂载sda5/opt,且只读

[root@redhat root]# mount /dev/cdrom /mnt        //挂载光驱

[root@redhat root]# mount /dev/fd0 /mnt        //挂载软驱

[root@redhat root]# mount -o loop,ro /var/boot.iso /mnt    //挂载ISO镜像

[root@redhat root]# vi /etc/fstab    //编辑fstab文件

LABEL=/ / ext3 defaults 1 1

none /dev/pts devpts gid=5,mode=620 0 0

none /proc proc defaults 0 0

none /dev/shm tmpfs defaults 0 0

/dev/sda2 swap swap defaults 0 0

/dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0

/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0

[root@redhat root]# mount        //查看当前挂载中的文件系统

[root@redhat root]# cat /etc/mtab    //查看当前挂载中的文件系统

[root@redhat root]# cat /proc/mounts        //查看当前挂载中的文件系统

[root@redhat root]# e2label /dev/sda5    //查看sda5的卷标

[root@redhat root]# e2label /dev/sda5 data        //sda5创建一个卷标

[root@redhat root]# mount -L data /opt    //使用卷标将sda5挂载到/opt

[root@redhat root]# umount /opt        //卸载/opt下的挂载设备

[root@redhat root]# umount /dev/sda5    //卸载sda5设备

 

文件系统维护

  1. fsck/filesystem check:用于检查和修复文件系统。e2fsck:检查与修复ext2文件系统。
  2. 系统在启动时自动会被检查。
  3. tune2fs:更改ext2文件系统属性。
  4. resize2fs:更改ext2文件系统的大小。
  5. parted:更改多种文件系统大小。

例:

[root@redhat root]# fsck -y /dev/sda6    //检测sda6分区

[root@redhat root]# tune2fs -j /dev/sda5    //sda5转换为ext3文件系统

[root@redhat root]# rpm -q autofs        //查看系统是否安装了autofs(自动挂载套件)

 

自动挂载

系统通过autofs服务自动挂载文件系统,需要后台的automount进程,autofs服务的开闭由/etc/init.d/autofs脚本控制,主要应用于软驱与光驱等场合,如果该设备一段时间没有被使用,autofs会自动卸载。

[root@redhat root]# cat /etc/auto.misc    //查看自动挂载设备

[root@redhat root]# service autofs restart    //重启自动挂载服务

[root@redhat root]# cat /etc/auto.master        //自动挂载目录集合

真正挂载目录的为 auto.master集合中的目录+auto.misc中的路径。

 

安装中的窗口切换

在安装过程中,用Alt+Fn键来切换显示窗口:

Alt+F1:安装对话框

Alt+F2:一个bash

Alt+F3:安装日志

Alt+F4:与系统、核心相关的信息

Alt+F5:其他讯息,诸如mke2fs,grub的标准输出

Alt+F7:X图形化显示

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

[root@redhat root]# sestatus        //查看SELinux的状态

[root@redhat root]# vi /etc/sysconfig/selinux        //编辑selinux文件

设置:SELINUX=disabled        //设置为不可用

转载自:http://blog.163.com/luowei505050@126/blog/static/11990720620111025520716/