设备文件:
b:块设备文件,以块为单位,随机访问的设备,如磁盘
c:字符设备文件,以字符为单位,访问有先后次序的线性设备,如键盘
ls -l查看设备文件,原显示大小的列改显示为
主设备号(major number)
用于标识设备类型
次设备号(minor number)
用于标识同一种类型的不同设备
[root@localhost tmp]# ls -l /dev 总计 0 brw-r----- 1 root disk 8, 0 10-10 22:31 sda brw-r----- 1 root disk 8, 1 10-10 05:15 sda1 brw-r----- 1 root disk 8, 2 10-10 05:15 sda2 brw-r----- 1 root disk 8, 3 10-10 05:15 sda3 brw-r----- 1 root disk 8, 4 10-10 22:35 sda4 crw------- 1 root root 4, 0 10-10 05:14 systty crw-rw-rw- 1 root tty 5, 0 10-10 05:15 tty crw-rw---- 1 root tty 4, 0 10-10 05:14 tty0 crw------- 1 root root 4, 1 10-10 05:15 tty1 crw------- 1 root root 4, 2 10-10 05:15 tty2
mknod 创建块或字符设备文件
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
-m MODE 指定权限
例子:mknod -m 640 mydev c 66 0
硬盘设备的设备文件名:
IDE,ATA:hd
SATA:sd
SCSI:sd
USB:sd
a,b,c,...来区别同一种类型下的不同设备
IDE:
第一个IDE口:主、从
/dev/hda, /dev/hdb
第二个IDE口:主、从
/dev/hdc, /dev/hdd
sda, sdb, sdc, ...
hda:
hda1: 第一个主分区
hda2:
hda3:
hda4:
hda5: 第一个扩展分区
查看当前系统识别了几块硬盘:
fdisk -l [/path/to/some_device_file]
[root@localhost ~]# fdisk -l Disk /dev/sda: 53.6 GB, 53687091200 bytes 255 heads, 63 sectors/track, 6527 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 652 5237158+ 83 Linux /dev/sda2 653 3262 20964825 83 Linux
管理磁盘分区
fdisk /dev/sda
p:显示当前硬件的分区,包括没保存的改动
n:创建新分区
e:扩展分区
p:主分区
d:删除一个分区
w:保存退出
q:不保存退出
t:修改分区类型
l:显示所支持的所有类型
Command (m for help): l 0 Empty 1e Hidden W95 FAT1 80 Old Minix bf Solaris 1 FAT12 24 NEC DOS 81 Minix / old Lin c1 DRDOS/sec (FAT- 2 XENIX root 39 Plan 9 82 Linux swap / So c4 DRDOS/sec (FAT- 3 XENIX usr 3c PartitionMagic 83 Linux c6 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix 80286 84 OS/2 hidden C: c7 Syrinx 5 Extended 41 PPC PReP Boot 85 Linux extended da Non-FS data 6 FAT16 42 SFS 86 NTFS volume set db CP/M / CTOS / . 7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set de Dell Utility 8 AIX 4e QNX4.x 2nd part 88 Linux plaintext df BootIt 9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM e1 DOS access a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e3 DOS R/O b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e4 SpeedStor c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS eb BeOS fs e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi ee EFI GPT f W95 Ext'd (LBA) 54 OnTrackDM6 a5 FreeBSD ef EFI (FAT-12/16/ 10 OPUS 55 EZ-Drive a6 OpenBSD f0 Linux/PA-RISC b 11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f1 SpeedStor 12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f4 SpeedStor 14 Hidden FAT16 <3 61 SpeedStor a9 NetBSD f2 DOS secondary 16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot fb VMware VMFS 17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE 18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto 1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep 1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
重新读取分区表
partprobe
文件系统管理
cat/proc/filesystems:用于显示当前内核所支持的文件系统
[root@localhost ~]# cat /proc/filesystems nodev sysfs nodev rootfs nodev bdev nodev proc nodev cpuset nodev binfmt_misc nodev debugfs nodev securityfs nodev sockfs nodev usbfs nodev pipefs nodev anon_inodefs nodev futexfs nodev tmpfs nodev inotifyfs nodev eventpollfs nodev devpts ext2 nodev ramfs nodev hugetlbfs iso9660 nodev mqueue nodev selinuxfs ext3 nodev rpc_pipefs nodev autofs
mkfs:make filesystem 创建文件系统
mkfs [OPTIONS] 设备文件
-t FSTYPE
mkfs -t ext2 = mkfs.ext2
mkfs -t ext3 = mkfs.ext3
专门管理ext系列文件系统
mke2fs
-j:创建ext3类型的文件系统
-b BLOCK_SIZE:指定块大小,默认是4096
-L LABEL:指定分区卷标,有了卷标以后,可以用卷标来引用分区,例如用卷标来mount
-m #(不用加%):指定预留给超级用户的块数百分比,-m 2表示预留百分之二
-i #:用于指定为多字节的空间创建一个inode,默认为8192,数值应该为块大小的2^n倍
-N #:指定inode的个数
-F:强制创建文件系统;默认文件系统已经挂载了就不可以重新创建
-E:用户指定额外文件系统属性,如stride=#(chunk/BLOCK_SIZE),对RAID0和RAID5有作用, 加快运作
blkid 设备文件:用于查看磁盘设备的相关属性,包括UUID、TYPE和LABEL
[root@localhost ~]# blkid /dev/sda1 /dev/sda1: LABEL="/boot" UUID="c9bf9230-cdcd-45aa-89ed-77f11f273d6e" SEC_TYPE="ext2" TYPE="ext3"
e2label:用于查看或定义卷标
e2label 设备文件:查看卷标
e2label 设备文件 卷标名:设定卷标
tune2fs:修改文件系统的相关属性,不用重新格式化,无损修改
tune2fs [OPTION] 设备文件
-j:不损害原有数据,将ext2升级为ext3,但ext3不能降级为ext2
-L LABEL:设定或修改卷标
-m:调整预留百分比,用法和mke2fs一样,但不用重新格式化
-r:直接设定预留块数,不能与-m一起使用
-c #:指定挂载次数达到#次之后进行自检,0或-1代表关闭此功能
-i #:指定每挂载使用多少天之后进行自检,0或-1代表关闭此功能
-l:显示超级块中的信息
[root@localhost ~]# tune2fs -l /dev/sda1 tune2fs 1.39 (29-May-2006) Filesystem volume name: /boot Last mounted on: <not available> Filesystem UUID: c9bf9230-cdcd-45aa-89ed-77f11f273d6e Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file Default mount options: user_xattr acl Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 1309440 Block count: 1309289 Reserved block count: 65464 Free blocks: 1231432 Free inodes: 1309406 First block: 0 Block size: 4096 Fragment size: 4096 Reserved GDT blocks: 319 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 32736 Inode blocks per group: 1023 Filesystem created: Wed Aug 19 21:04:51 2015 Last mount time: Wed Aug 19 16:58:26 2015 Last write time: Wed Aug 19 16:58:26 2015 Mount count: 4 Maximum mount count: -1 Last checked: Wed Aug 19 21:04:51 2015 Check interval: 0 (<none>) Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 128 Journal inode: 8 Default directory hash: tea Directory Hash Seed: 333d4c06-586d-42f8-b580-5b956bb639a4 Journal backup: inode blocks
dumpe2fs:显示超级块中的信息和每块组的信息
dumpe2fs [OPTION] 设备文件
-h:只显示超级块中的信息
fsck:检查并修复Linux文件系统
-t FSTYPE:指定文件系统类型
-a:不询问自动修复
e2fsck:专用于检查并修复ext类文件系统
-f:强制检查
-p:自动修复,默认选项
挂载/卸载文件系统
挂载:将新的文件系统关联至当前根文件系统
卸载:将某文件系统与当前文件系统的关联关系予以移除
mount:挂载
mount [OPTION] [-o OPTION] 设备 挂载点
设备:
设备文件
卷标:LABEL=""
UUID:UUID=""
挂载点:目录
要求:
1.没有被其他进程使用
2.目录得事先存在
3.目录中原有的文件将会被暂时隐藏,卸载后才可以重新显示出来
:不跟参数,显示当前系统已经存在的设备和挂载点
-a:表示挂载/etc/fstab文件中的所有文件系统
-n:默认情况下,mount命令每挂载一个设备,都会把挂载的设备信息保存至/etc/mtab文件, 使用-n选项则不保存
-t FSTYPE:指定正在挂载设备上的文件系统的类型;不使用此选项时,mount会自动调用blkid 命令获取对应文件系统的类型
-r:只读挂载,挂载光盘时常用此项
-w:读写挂载
-o:指定额外的挂载选项,也即指定文件系统启动的属性
remount:重新挂载,可不用指定挂载点
ro:只读挂载
rw:读写挂载
loop:挂载本地回环设备,即挂载ISO镜像
挂载完成后,要通过挂载点访问对应文件系统上的文件
umount:卸载某文件系统
umount 设备
umount 挂载点
-n:
挂载注意事项:挂载的设备或挂载点没有被进程使用
fuser:验证进程正在使用的文件或套接字文件
-v:查看某文件上正在运行的进程
-km:终止正在访问此目录的所有进程
fuser -km /path/to/directory
#用另一个ssh登陆shell并cd进/etc,在第一个shell中使用fuser -v [root@localhost ~]# fuser -v /etc USER PID ACCESS COMMAND /etc: root 3955 ..c.. bash
创建交换分区
free:显示内存和交换分区的情况,包括total、used、free等
-m:默认单位是KB,选用-m后单位改为MB
[root@localhost ~]# free total used free shared buffers cached Mem: 514832 342384 172448 0 17156 199736 -/+ buffers/cache: 125492 389340 Swap: 0 0 0
步骤:
①fdisk命令中,n创建分区
②fdisk命令中,t调整分区类型为82
③创建交换分区:
1.mkswap 设备文件
-L LABEL
2.swapon 设备文件:启用交换分区
-a:启用所有的定义在/etc/fstab文件中的交换设备
3.swapoff 设备文件:关闭交换分区
创建回环设备:
loopback,使用软件来模拟实现硬件
dd:通过指定数据源和数据存储目标来创建特定的文件
if=数据来源
of=数据存储目标
bs=#:块大小,如bs=1M
count=#:块个数
seek=#:创建数据文件时,跳过的空间大小
dd if=/dev/sda of=/mnt/usb/mbr.backup bs=512 count=1 备份sda的MBR到u盘
dd if=/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1 还原MBR
dd if/dev/zero of=/var/swapfile bs=1M count=1024 创建一个1G大小的空文件
用mount挂载iso镜像、特定文件等
mount -o loop 文件路径 MOUNT_POINT
mount -o loop /var/swapfile /mnt/loopback1
FS的配置文件/etc/fstab
OS在初始时,会自动挂载此文件中定义的每个文件系统
每一行的格式:
要挂载的设备:/dev/sda5
挂载点:/mnt/test
文件系统类型:ext3
挂载选项:defaults
转存频率(每多少天做一次完全备份):0
文件系统检测次序(只有根可以是1):0
练习:
1、创建一个5G的分区,文件系统为ext3,卷标为MYDATA,块大小为1024,预留管理空间为磁盘分区的3%,要求开机后可以自动挂载至/data目录,并且自动挂载的设备要使用卷标进行引用;
# fdisk /dev/sdb
n
p
1
+5G
w
q
# mke2fs -j -b 1024 -L MYDATA -m 3 /dev/sdb1
# vim /etc/fstab
/dev/sdb2 /data ext3 defaults 0 0
2、创建一个本地回环文件/var/swaptemp/swapfile来用于swap,要求大小为512MB,卷标为SWAP-FILE,且开机自动启用此交换设备;
# mkdir /var/swaptemp
# dd if=/dev/zero of=/var/swaptemp/swapfile bs=1M count=512
# mkswap LABLE=SWAP-FILE /var/swaptemp/swapfile
在/etc/fstab文件中追加
/var/swaptemp/swapfile swap swap defaults 0 0
3、上述第一问,如何让其自动挂载的同时启用ACL功能;
/etc/fstab
LABEL='MYDATA' /data ext3 defaults,acl 0 0