当我们拿到一块新磁盘后,该如果使用呢?一般需要经过如下步骤:
1、对磁盘进行分割,建立可用的分区
2、对分区格式化,以建立可用的文件系统
3、在linux系统上建立挂载点,再将建立好的文件系统挂载上来
在详解这些过程之前,我们先来了解下磁盘的结构
一、磁盘结构(以传统机械磁盘为例)
1、磁盘的最小单位为扇区(sector),处在同心圆的若干个扇区组成磁道(track),从外向内分别是0磁道、1磁道、2磁道...不同盘片的同一磁道组成柱面(cylinder),由外而内分别是0柱面、1柱面...
2、扇区大小有512bytes和4K两种,目前仍以512bytes为主
3、磁盘第一个扇区(0柱面0磁道1扇区)为MBR(master boot record),即主引导记录,这个扇区又包括boot loader、分区表和3部分:
1)boot loader:代码区,主引导程序(如grub),446bytes,其主要任务有:
①提供菜单:使用者可使用不同的开机项
②指向开机所需的核心文件(内核、ramdisk)来启动操作系统
③还可将开机引导权交给其它loader,每个分区也拥有自己的开机扇区(boot sector),开机引导程序除了可以装在MBR外,还可装在分区的开机扇区。
2)分区表:记录整个磁盘分区的状态,64bytes,每16个字节标记一个分区,因此最多可记录4个分区,分区的单位是柱面,每个记录区记录了该分区从开始到结束的柱面号
①所谓的分区即是对该分区表所作的设置,当文件系统要写入磁盘时,首先会参考分区表
②这些分区为主分区(primary)或扩展分区(extend),扩展分区实为解决多分区的需求。因为primary+extend<=4,为解决多分区需要,可划分扩展分区,在扩展分区中再划分若干个逻辑分区。
③扩展分区只能有一个(操作系统的限制)且其本身不能格式化,必须划分逻辑分区后才能使用
④编号:主分区、扩展分区为1-4,逻辑分区从5开始
3)MBR有效性标记,2bytes
4、与支持最大2T磁盘且至多有4个主分区的MBR分区表相比,还有一种较新出现的GPT分区表,它能支持最大18EB磁盘且分区数没有限制,只受操作系统限制。它和UEFI相相辅助相成,UEFI将逐渐取代BIOS,而GPT也将逐渐取代MBR
二、安装系统之前的分区规划
1、根分区当然是必需的,swap区通常也是需要的。swap是一段内存交换空间,一般分割为物理内存的两倍,以防内存不足的问题。当内存不足时,为了让后续的程序能够正常执行,内存中暂不使用的数据会被挪到swap中 ,需要时再挪回内存。
3、对于一些读写较频繁或存放重要资料的大目录,也应单独分区,如/var,/home,/tmp
4、经常访问的分区应尽量选择磁盘靠外的范围(编号较低的区),因为磁盘越靠外其圆周越大,磁头扫过一周所读取的数据也越多。我们可以注意到/boot若单独分区,总是默认为第一分区,因为/boot中存放着系统启动所需的核心文件(内核和ramdisk),这样处理可以加快系统启动速度
二、主要硬件设备在linux中的设备名
linux中一切皆文件,硬件设备也会被当作文件来对待,以下为几种常见设备在linux系统中的表示:
1、SCSI/SATA/SAS/USB硬盘及U盘:/dev/sd[a-p]
a-p表示设备号,若有多个设备,按照读取顺序依次命名,如/dev/sda,/dev/sdb...设备名后加上数字表示该设备的分区,如/dev/sda2表示sda的第2个分区
2、IDE硬盘(旧式):/dev/hd[a-d]
3、当前CD/DVD:/dev/cdrom
三、创建分区
1、对于主流的MBR分区表使用fdisk命令(GPT分区表则使用gdisk命令)
用法:
1、fdisk -l [设备名]:查看所有磁盘或指定磁盘的分区表信息
2、fdisk 设备名:在指定磁盘上创建分区
交互式界面有许多子命令:
m:查看帮助
p:显示磁盘分区表
n:new,新建分区
d:delete,删除分区
l:列出所有已知的分区系统ID
t:修改分区的系统ID
w:保存并退出
q:不保存退出
[root@localhost ~]# fdisk -l # 查看所有磁盘分区信息,显示只有一个磁盘sda Disk /dev/sda: 32.2 GB, 32212254720 bytes 255 heads, 63 sectors/track, 3916 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0009f93a Device Boot Start End Blocks Id System /dev/sda1 * 1 26 204800 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 26 1332 10485760 83 Linux /dev/sda3 1332 1593 2097152 82 Linux swap / Solaris [root@localhost ~]# fdisk /dev/sda # 对磁盘sda创建分区 WARNING: DOS-compatible mode is deprecated. It‘s strongly recommended to switch off the mode (command ‘c‘) and change display units to sectors (command ‘u‘). 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): n # 创建新分区 Command action e extended p primary partition (1-4) p # 指定创建主分区 Selected partition 4 # 指定分区号 First cylinder (1593-3916, default 1593): # 指定起始柱面号,选择默认起始号按回车键即可 Using default value 1593 Last cylinder, +cylinders or +size{K,M,G} (1593-3916, default 3916): +10G # 指定分区大小 Command (m for help): p # 显示分区表,相当于fdisk -l 设备名,可以看到新分区创建成功 Disk /dev/sda: 32.2 GB, 32212254720 bytes 255 heads, 63 sectors/track, 3916 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0009f93a Device Boot Start End Blocks Id System /dev/sda1 * 1 26 204800 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 26 1332 10485760 83 Linux /dev/sda3 1332 1593 2097152 82 Linux swap / Solaris /dev/sda4 1593 2898 10489449 83 Linux Command (m for help): t # 该命令可指定分区类型,如不指定,默认为Linux Partition number (1-4): 4 Hex code (type L to list codes): L # 注意,swap分区类型编号为82 0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT- 2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT- 4 FAT16 <32M 41 PPC PReP Boot 85 Linux extended c7 Syrinx 5 Extended 42 SFS 86 NTFS volume set da Non-FS data 6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / . ... Hex code (type L to list codes): 6 指定分区类型编号 Changed system type of partition 4 to 6 (FAT16) Command (m for help): p Disk /dev/sda: 32.2 GB, 32212254720 bytes 255 heads, 63 sectors/track, 3916 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0009f93a Device Boot Start End Blocks Id System /dev/sda1 * 1 26 204800 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 26 1332 10485760 83 Linux /dev/sda3 1332 1593 2097152 82 Linux swap / Solaris /dev/sda4 1593 2898 10489449 6 FAT16 Command (m for help): n You must delete some partition and add an extended partition first # 因为已经有4个主分区,所以无法再创建新分区,剩余的空间也就浪费了 Command (m for help): d Partition number (1-4): 4 # 将第4分区删除,可同时删除多个分区,以逗号相隔 Command (m for help): p ... Device Boot Start End Blocks Id System /dev/sda1 * 1 26 204800 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 26 1332 10485760 83 Linux /dev/sda3 1332 1593 2097152 82 Linux swap / Solaris Command (m for help): n Command action e extended p primary partition (1-4) e # 指定创建扩展分区 Selected partition 4 First cylinder (1593-3916, default 1593): Using default value 1593 Last cylinder, +cylinders or +size{K,M,G} (1593-3916, default 3916): Using default value 3916 Command (m for help): p ... Device Boot Start End Blocks Id System /dev/sda1 * 1 26 204800 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 26 1332 10485760 83 Linux /dev/sda3 1332 1593 2097152 82 Linux swap / Solaris /dev/sda4 1593 3916 18666534 5 Extended Command (m for help): n First cylinder (1593-3916, default 1593): # 主分区加扩展分区已有4个,默认只能新建逻辑分区了 Using default value 1593 Last cylinder, +cylinders or +size{K,M,G} (1593-3916, default 3916): +10G Command (m for help): p ... Device Boot Start End Blocks Id System /dev/sda1 * 1 26 204800 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 26 1332 10485760 83 Linux /dev/sda3 1332 1593 2097152 82 Linux swap / Solaris /dev/sda4 1593 3916 18666534 5 Extended /dev/sda5 1593 2899 10490413+ 83 Linux Command (m for help): w # 注意保存退出 The partition table has been altered!
2、parted:是一个同时支持MBR和GPT的分区命令
用法:parted [选项]… [设备 [命令 [参数]…]…]
常用命令和参数:
help [COMMAND]:查看帮助
print [devices|free|list,all|NUMBER]:打印分区表
mklabel,mktable LABEL-TYPE:创建新的分区表(mbr或gpt)
mkpart PART-TYPE [FS-TYPE] START END:创建分区,指定分区类型、大小(分区类型有primary、extended、logical,可通过查看帮助获悉)
mkpartfs PART-TYPE FS-TYPE START END:直接创建一个带有文件系统的分区(即创建分区并格式化)
rm NUMBER:删除指定编号的分区
check NUMBER:对文件系统进行简单的检查
cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER:将文件系统复制到另一个分区
move NUMBER START END:移动指定编号的分区
rescue START END:挽救临近分割点的遗失的分区
1)命令行方式,如parted /dev/sda mkpart extended 10GB 20GB
2)交互方式:parted 设备,如parted /dev/sda
[root@localhost ~]# parted /dev/sda ... (parted) help # 查看帮助 align-check TYPE N check partition N for TYPE(min|opt) alignment ... mklabel,mktable LABEL-TYPE create a new disklabel (partition table) mkfs NUMBER FS-TYPE make a FS-TYPE file system on partition NUMBER mkpart PART-TYPE [FS-TYPE] START END make a partition mkpartfs PART-TYPE FS-TYPE START END make a partition with a file system ... (parted) help mkpart # 查看指定命令的帮助信息 mkpart PART-TYPE [FS-TYPE] START END make a partition PART-TYPE is one of: primary, logical, extended FS-TYPE is one of: ext4, ext3, ext2, fat32, fat16, hfsx, hfs+, hfs, ... START and END are disk locations, such as 4GB or 10%. Negative values count from the end of the disk. For example, -1s specifies exactly the last sector. ‘mkpart‘ makes a partition without creating a new file system on the partition. FS-TYPE may be specified to set an appropriate partition ID. (parted) print free # 显示剩余空间 Model: VMware, VMware Virtual S (scsi) Disk /dev/sda: 32.2GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 32.3kB 1049kB 1016kB Free Space 1 1049kB 211MB 210MB primary ext4 boot 2 211MB 10.9GB 10.7GB primary ext4 3 10.9GB 13.1GB 2155MB primary linux-swap(v1) 13.1GB 32.2GB 19.1GB Free Space (parted) help unit unit UNIT set the default unit to UNIT UNIT is one of: s, B, kB, MB, GB, TB, compact, cyl, chs, %, kiB, MiB, GiB, TiB (parted) unit cyl # 因默认单位为GB,以此单位分区比较粗糙,为此将单位改为柱面 (parted) print free ... Number Start End Size Type File system Flags 0cyl 0cyl 0cyl Free Space 1 0cyl 25cyl 25cyl primary ext4 boot 2 25cyl 1331cyl 1305cyl primary ext4 3 1331cyl 1592cyl 261cyl primary linux-swap(v1) 1593cyl 3916cyl 2323cyl Free Space (parted) mkpart extended 1593 3916 # 创建扩展分区 Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (Device or resource busy). As a result, it may not reflect all of your changes until after reboot. (parted) mkpart logical 1593 2500 # 接着创建逻辑分区 ... (parted) print # 查看分区表显示分区创建成功 ... Number Start End Size Type File system Flags 1 0cyl 25cyl 25cyl primary ext4 boot 2 25cyl 1331cyl 1305cyl primary ext4 3 1331cyl 1592cyl 261cyl primary linux-swap(v1) 4 1593cyl 3916cyl 2323cyl extended lba 5 1593cyl 2500cyl 906cyl logical (parted) rm 5 # 删除第5分区 ... (parted) print ... Number Start End Size Type File system Flags 1 0cyl 25cyl 25cyl primary ext4 boot 2 25cyl 1331cyl 1305cyl primary ext4 3 1331cyl 1592cyl 261cyl primary linux-swap(v1) 4 1593cyl 3916cyl 2323cyl extended lba (parted) quit # 退出程序 Information: You may need to update /etc/fstab.
3、对于已经有分区处于使用状态的磁盘来讲,新建分区后需要让内核重读其分区表,若重读不成功,还需重启系统
① centos 5:partprobe [device]
② centos 6:partx -a [device]
kpartx -af [device]
四、创建文件系统(格式化)
1、linux支持多种文件系统格式,有ext2,ext3,ext4,xfs,vfat等
①ext2是linux标准的文件系统格式,曾应用广泛,但没有日志,现已基本上被ext3和ext4取代
②为了解决因某些原因导致的metadata的内容与实际资料区不一致的问题,ext3格式的文件系统开始引入日志功能,专门划分一片日志区记录写入或修改文件的每一个步骤,当数据记录出现问题时,只需检查日志文档即可快速修复
③ ext4是ext3的再次升级版,现已成为主流格式;xfs是centos 7的默认文件系统格式
④vfat没有日志功能,且缺乏linux系统所需要的许多特性,但它能被windows和linux识别,故除了用来在windows系统和linux系统之间共享数据外,一般情况不会采用此种格式
2、mkfs:创建文件系统,mkfs本身并不执行文件系统创建的工作,而是调用相关程序进行
用法:mkfs -t FS-TYPE [DEVICE]
例如 mkfs -t ext4 /dev/sda5
mkfs是个通用的命令,若想直接创建某格式的文件系统,也可不指定选项而在mkfs后加上后缀,如mkfs.xfs,mkfs.ext4等
3、mke2fs:创建ext系列格式的文件系统
用法:mke2fs [option]... [DEVICE]
常用选项:
-c:检查是否有损坏的块
-t {ext2/ext3/etx4}:指定文件系统,默认为ext2
-b {1024/2048/4096}:指定块大小,若不指定,默认为4096
-L:label,卷标
-j:创建日志,相当于 -t ext3
-i #:每多少个字节创建一个inode,此字节数不应小于块大小
-N #:直接指定inode数
-m #:指定预留空间所占整个分区空间的百分比,默认为5
-O:指定分区特性
如:mke2fs -t ext4 -b 2048 -m 3 -L mydata /dev/sda5
[root@localhost ~]# mke2fs -t ext4 -m 3 -b 2048 -L mydata /dev/sda5 mke2fs 1.41.12 (17-May-2010) Filesystem label=mydata OS type: Linux Block size=2048 (log=1) Fragment size=2048 (log=1) Stride=0 blocks, Stripe width=0 blocks 657408 inodes, 5245206 blocks 157356 blocks (3.00%) reserved for the super user First data block=0 Maximum filesystem blocks=543162368 321 block groups 16384 blocks per group, 16384 fragments per group 2048 inodes per group Superblock backups stored on blocks: 16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 2048000, 3981312 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 35 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
4、格式化并启用swap分区
1)格式化swap分区
mkswap [-L LABEL] DEVICE
2)启用(禁用)某交换分区设备
swapon(swapoff) [-ap] DEVICE
-a:all,启用所有交换分区
-p #:指定此交换设备的优先级
例如 mkswap /dev/sda3
swapon /dev/sda3
5、fsck:检查并修复一个或多个linux文件系统。因进程意外中止或系统崩溃等情况导致写入操作非正常中止时,可能会引起文件损坏,此时应修复文件系统;
用法:fsck [options]... [filesys]
常用选项:
-t FSTYPE:指定检查那种格式的文件系统
-a:自动修复
-r:交互式修复错误
如 fsck /dev/sda5
注意:fsck为离线修复,修复前先要确实指定分区处于卸载状态
filesys可以是一个设备名(如/dev/sda2 ), 挂载点, 或标签, 也可以是UUID。如果没有在命令行指定文件系统,并且没有指定-A 选项,fsck 将默认按顺序检查/etc/fstab中登记的文件系统。
[root@localhost ~]# fsck /dev/sda5 fsck from util-linux-ng 2.17.2 e2fsck 1.41.12 (17-May-2010) mynote: clean, 11/657408 files, 121824/5245206 blocks [root@localhost ~]# fsck /dev/sda1 fsck from util-linux-ng 2.17.2 e2fsck 1.41.12 (17-May-2010) /dev/sda1 is mounted. # 提示指定分区被挂载,无法继续 e2fsck: Cannot continue, aborting.
6、e2fsck:专用于检测ext系列文件系统
用法类似于fsck
常用选项:
-f:强制进行检测
-y:对问题自动回答为yes
7、tune2fs:调整/查看ext系列文件系统的属性
用法:tune2fs option... DEVICE
常用选项:
-l:查看超级块信息
-c #:设置强制自检的挂载次数,如果开启,每挂载一次mount conut就会加1,超过次数就会强制自检
-i #[d|m|w] 设置强制自检的时间间隔[d天m月w周]
-m reserved-blocks-percentage 保留块的百分比
-L LABLE:类似e2label的功能,可以修改文件系统的标签
-r reserved-blocks-count 调整系统保留空间
-O [^]FEATURE:设置或清除文件系统的特性或选项,特性前加^表示关闭指定特性
-o:设置或清除文件系统加载的特性或选项
[root@localhost ~]# tune2fs -l /dev/sda5 tune2fs 1.41.12 (17-May-2010) Filesystem volume name: mynote Last mounted on: <not available> Filesystem UUID: 300e0900-992a-4aa5-a327-f1edb7bf1a6e ... Inode size: 256 Required extra isize: 28 Desired extra isize: 28 Journal inode: 8 Default directory hash: half_md4 Directory Hash Seed: 07cfbb4d-7656-4f8b-b319-789a20593681 Journal backup: inode blocks [root@localhost ~]# tune2fs -i 20d /dev/sda5 # 指定对第5分区每隔10天强制自检 tune2fs 1.41.12 (17-May-2010) Setting interval between checks to 1728000 seconds
五、挂载文件系统
给分区格式化之后就要挂载使用了。挂载是将额外的分区与根文件系统上的某目录建立关联的过程,把该目录当作该分区的入口的意思。这个目录就称为挂载点,该目录下的原有文件将会被隐藏。默认只有root用户有挂载权限
1、mount:挂载设备或分区
用法:mount DEVICE(要挂载的设备或分区) MOUNT_POINT
常用选项:
-a:挂载“/etc/fstab”中描述的所有文件系统
-t FSTYPE:指定文件系统类型
-r:只读挂载
-w:读写挂载
-L:以卷标方式指定设备
-U:以UUID的方式指定设备 mount UUID=‘uuid‘ 挂载点或mount -U uuid 挂载点
-n:挂载时,不更新/etc/mtab文件
-o OPTION:指定加载文件系统时的选项
sync:同步I/O
async:异步I/O,数据写操作先在内存中完成,然后根据某种策略同步至持久设备中
atime/noatime:文件和目录被访问时更新时间戳
auto/noauto:设备是否支持mount的-a选项自动挂载
exec/noexec:是否允许执行此设备上的二进制程序文件
suid/nosuid:是否支持在些设备的文件上使用suid
remount:重新挂载,通常用于不卸载的情况下重新指定挂载选项
acl:在此设备上支持使用facl (默认情况下不支持)
defaults:使用默认的选项。默认选项为rw、suid、dev、exec、anto nouser与async。
dev/nodev:(不)可读文件系统上的字符或块设备
user/nouser:默认只有root才能挂载,该参数指定是否允许一般用户挂载该分区
defaults: 默认值为rw, suid, dev, exec, auto, nouser,and async
以指定挂载后支持acl为例:
方法1:
mount -o acl DEVICE MOUNT_POINT
方法2:
tune2fs -o acl DEVICE
◆根文件系统上有两个固定挂载点:/mnt,/media
◆有时候由于某种原因根分区处于唯读状态,而重启系统又麻烦,这时候就可以:
mount -o remount,rw,auto /
◆注意:挂载点必须是已建立的目录
使用mount命令挂载只是临时有效,若不想每次开机都手动挂载,可写入/etc/fstab文件
2、/etc/fstab:开机自动挂载的配置文件,当系统启动时,会自动地从这个文件读取信息,并且自动地将此文件中指定的文件系统挂载到指定的目录
一行一个挂载项,其格式为:
挂载的设备 挂载点 文件系统类型 挂载选项 转储(dump)频率 自检次序
①挂载的设备: 可以是设备或分区名,UUID,label。建议使用UUID,此标识是独一无二的
②挂载选项:这个与mount -o OPTION无异,多指定多个,以逗号相隔
③转储(dump)频率:0表示不备份,1表示每天备份,2表示每两天备份一次
④自检次序:0表示不自检,额外创建的文件系统都无须自动自检,1表示首先自检,通常只有根文件系统需首先自检
◆/etc/fatab是开机挂载配置文件,而实际的文件系统挂载动作是记录到/etc/mtab和/proc/mounts文件中的
3、查看所有已挂载的设备
①直接使用mount命令,它实际上是读取/etc/mtab文件
②cat /etc/mtab或cat /proc/mounts
[root@localhost ~]# mount -L mynote /mnt # 挂载标签为mynote的分区到/mnt目录上 [root@localhost ~]# mount # 查看所有已挂载设备 /dev/sda2 on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /dev/sda5 on /mnt type ext4 (rw) # 显示已挂载成功 [root@localhost ~]# vim /etc/fstab ... UUID=b37fe9d5-cef1-4e11-a9a7-b82df4f692f0 / ext4 defaults 1 1 UUID=91caabfc-c9d9-448c-bcf7-b3889df665a2 /boot ext4 defaults 1 2 UUID=db3bf576-304c-4bf8-9b00-03d6d3cedd8f swap swap defaults 0 0 mynote /mnt ext4 defaults 0 0 # 将该分区写入开机自动挂载 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0
5、umount:卸载
用法:umount DEVICE或umount MOUNT_POINT
注意:只有指定的设备或分区没有被进程访问时才能卸载
查看哪些进程正在访问挂载的设备:fuser -v 挂载点
中止正在此挂载点的进程:fuser -km 挂载点
[root@localhost ~]# cd /mnt [root@localhost mnt]# umount /dev/sda5 umount: /mnt: device is busy. # 因为当前已进入分区,所以提示设备正忙,无法卸载 (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) [root@localhost ~]# fuser -v /mnt # 查看正在访问该分区的进程,这里为bash USER PID ACCESS COMMAND /mnt: root 2070 ..c.. bash [root@localhost mnt]# cd [root@localhost ~]# umount /dev/sda5 # 切出后再次执行卸载 [root@localhost ~]# mount ... tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) [root@localhost ~]#
六、查看磁盘或文件系统信息
1、fdisk -l [DEVICE]和cat /proc/partitions:查看磁盘分区信息
1、blkid:查看块设备的文件系统类型、label、UUID等信息
用法:blkid [option]... [DEVICE]
常用选项:
-s 标签:显示指定标签信息 (LABEL、UUID、TYPE)
-o 输出格式:指定输出格式 (full、value、list\device\udev)
[root@localhost ~]# blkid /dev/sda1: UUID="91caabfc-c9d9-448c-bcf7-b3889df665a2" TYPE="ext4" /dev/sda2: UUID="b37fe9d5-cef1-4e11-a9a7-b82df4f692f0" TYPE="ext4" /dev/sda3: UUID="db3bf576-304c-4bf8-9b00-03d6d3cedd8f" TYPE="swap" /dev/sda5: LABEL="mydata" UUID="300e0900-992a-4aa5-a327-f1edb7bf1a6e" TYPE="ext4" [root@localhost ~]# blkid -s TYPE /dev/sda5 /dev/sda5: TYPE="ext4"
2、e2label:查看或设定卷标
用法:e2label DEVICE [LABEL]
[root@localhost ~]# e2label /dev/sda5 mydata [root@localhost ~]# e2label /dev/sda5 mynote [root@localhost ~]# e2label /dev/sda5 mynote
3、查看superblock信息
tune2fs -l DEVICE
dumpe2fs -h DEVICE
4、df:报告磁盘分区的使用情况
用法:df [option]... [DEVICE]
常用选项:
-h:以常见的格式显示分区使用信息
-i:显示inode 使用信息
[root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 9.9G 2.9G 6.5G 31% / tmpfs 495M 0 495M 0% /dev/shm /dev/sda1 194M 30M 155M 16% /boot /dev/sda5 9.9G 77M 9.5G 1% /mnt [root@localhost ~]# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda2 655360 83652 571708 13% / tmpfs 126544 1 126543 1% /dev/shm /dev/sda1 51200 38 51162 1% /boot /dev/sda5 657408 12 657396 1% /mnt
5、du:查看文件和目录的磁盘使用情况
用法:du [option]... [文件或目录]
不指定选项和参数则默认显示当前目录下的所有文件和子目录的磁盘使用情况
常用选项:
-s:显示总大小
-a:显示当前或指定目录、子目录下的所有文件和目录的磁盘使用情况
-h:在数字后附后单位,提高可读性
[root@localhost ~]# du ... 8 ./.config/ibus 28 ./.config 4 ./Desktop 4 ./.gvfs 4 ./Music 15148 . [root@localhost ~]# du -ah /home/tesla ... 12K /home/tesla/.mozilla 4.0K /home/tesla/.gnome2 4.0K /home/tesla/.bash_history 4.0K /home/tesla/.bashrc 4.0K /home/tesla/passwd 4.0K /home/tesla/.viminfo 4.0K /home/tesla/shakespear 52K /home/tesla
七、使用dd命令制作磁盘映像文件
linux中,我们可以使用dd命令制作一个大文件并格式化当作磁盘使用,这在虚拟机中经常用到。
dd:用于从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出
用法:dd if=输入文件或设备 of=输出文件或设备 bs=块大小 [skip=跳过的块数] count=块数
注意选项"skip=#",表示从输入文件开头跳过#个块后再开始复制,常用在创建稀疏文件中
例如:dd if=/dev/cdrom /var/backup.iso bs=1M count=1000 # 指定的块大小为1M,块数为1000,因此这实际上对光盘备份了1G的数据
1、创建一个容量为1G的文件
dd if=/dev/zero of=/loop/cipan bs=1M skip=1000 count=1
使用skip选项创建了稀疏文件,此文件容量1G,但实际占用磁盘大小只有1M
若创建方式为dd if=/dev/zero of=/loop/cipan bs=1M count=1000,则文件实际占用1G空间,太过浪费。
2、格式化并挂载
mke2fs -t ext4 /loop/cipan
mount /loop/cipan /media
3、写入开机自动挂载配置文件/etc/fstab
注意:对于映像文件,最好使用设备名来指定
[root@localhost ~]# dd if=/dev/zero of=/loop/cipan bs=1M skip=1000 count=1 1+0 records in 1+0 records out 1048576 bytes (1.0 MB) copied, 0.00239105 s, 439 MB/s [root@localhost ~]# ll -k /loop/cipan # 可以看到文件实际大小只有1M -rw-r--r-- 1 root root 1024 Oct 14 20:01 /loop/cipan [root@localhost ~]# mke2fs -F -t ext4 /loop/cipan # 格式化该文件,通常要指定-F选项强制执行 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) ... Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 20 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@localhost ~]# mount -o loop /loop/cipan /media # 挂载映像文件时通常要指定 -o loop [root@localhost ~]# blkid # 查看其UUID ... /dev/loop0: UUID="4124525b-03e2-4f1a-ac0a-41500dfe7911" TYPE="ext4" [root@localhost ~]# df ... /loop/cipan 1003 17 935 2% /media [root@localhost ~]# vim /etc/fstab # 写入自动开机挂载配置文件 /loop/cipan /media ext4 defaults 0 0
原文地址:http://9124573.blog.51cto.com/9114573/1703007