mkfs.vfat /dev/block/mmcblk0pxxxx 格式化某分区为vfat格式
busybox mkfs.vfat /dev/block/mmcblk0pxxxx
mount -t vfat -o ro,uid=0,gid=1000,fmask=0027,dmask=0027 /dev/block/mmcblk0pxx /mnt/partion 将 /dev/block/mmcblk0pxx 按照只读,root用户,system组,访问掩码为root可读可写可执行,system可读可执行,其他用户无权限挂载到/mnt/partion 目录
重新挂载分区需要先卸载再重新remount
umount /mnt/pation //卸载前关闭该文件系统所有访问,关闭所有打开的文件
mount -t vfat -o rw,uid=0,gid=1000,fmask=0027,dmask=0027 /dev/block/mmcblk0pxx /mnt/partion
,规划磁盘分区:fdisk
二,格式化磁盘分区:mkfs.xxx
三,挂载磁盘分区:mount、umount
四,文件系统管理:e2abel、blkid、tun2fs、df
五,开机自动挂载:/etc/fstab
六、扩展
1,swap分区的规划,挂载和自动挂载
2,挂载文件夹
3,autofs触发挂载
4, NTFS分区的创建,挂载,使用
一:规划磁盘分区
1,查看磁盘分区: fdisk -l
格式:fdisk -l [磁盘名]
示例:
[root@localhost ~]# fdisk -l /dev/sda //如果不指定磁盘名,则列出所有磁盘的分区
Disk /dev/sda: 64.4GB, 64424509440 bytes
255 heads, 63sectors/track, 7832 cylinders
Units = cylinders of16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 25 200781 83 Linux
/dev/sda2 26 2575 20482875 83 Linux
/dev/sda3 2576 3850 10241437+ 83 Linux
/dev/sda4 3851 7832 31985415 5 Extended
/dev/sda5 3851 4111 2096451 82 Linux swap / Solaris
/dev/sda6 4112 5085 7823623+ 83 Linux
[root@localhost ~]#
2,规划磁盘分区:fdisk的常用选项
m :查看帮助信息
p :列表查看分区信息
n :新建磁盘分区
d :删除分区
t :变更分区类型(在使用t的时候,如果不知道)
w :保存分区设置并退出
q :放弃分区设置并退出
示例:fdisk交互式划分磁盘分区:http://murongqingqqq.blog.51cto.com/2902694/1361896
二,格式化磁盘分区
格式化工具:mkfs
mkfs -t 文件系统类型 分区设备
或使用mkfs.xxx 分区设备
[root@localhost ~]#mkfs.
mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.msdos mkfs.vfat
可以看到,mkfs.后面可以跟的格式,也就是-t后面所接的文件系统类型。
注:
-在使用的时候,mkfs作为前段,通过-t调用各个程序
-使用mkfs.ext3时可通过-L选项为文件系统指定卷标
-使用mkfs.vfat时可通过-F选项指定FAT位数(默认为32,一般不指定,因为指定的时候只能指定16或32,16位的现在一般不用)
-在使用mkfs.xxx格式化一个分区设备的时候,需要先执行以下partprobe更新一下磁盘分区,否则可能出现无法找到想要格式化的分区。
三,挂载磁盘分区:mount、umount
1,mount命令
-格式:mount [选项] 设备名挂载点
常用命令选项
-a :加载所有fstab已配置的文件系统
注:在修改了/etc/fstab文件之后,可以使用mount -a命令或者reboot来重新加
载一下文件系统的挂载,这时如果有新加的swap分区,可能挂载不成功,那么,
需要重启,一般的分区都能挂载成功,如果有提示错误,那么需要修改/etc/fatab
文件内容。
-t :指定文件系统类型
-o :指定挂载参数
ro/rw :只读/可读可写(默认可读可写)
acl/noacl :启用/禁用ACL(默认禁用)
exec/noexec :打开/关闭执行权(默认打开,如果不支持,就是该程序有x权
限,在此分区内也不允许执行。)
suid/nosuid :启用/禁用SUID(默认启用;则当一个程序拥有suid权限的时
候,比如说mkdir,如果此分区不支持suid,则在此分区上建
立的目录也不属于mkdir的所有者)
guid/noguid :启用/禁用GUID
remount :重新挂载(用法:mount -o remount,exec /dev/sdb1 /data/tools)
挂载一个分区的默认属性:rw,suid,dev,exec,auto,nouser,async
-L :使用卷标挂载设备(用e2label /dev/sdb1 “tools”设置/dev/sdb1的卷标为tools,
可使用mount -L tools /data/tools来挂载/dev/sdb1分区。)
注:
用mount挂载一个iso文件的时候需要用-o参数指定其类型
因为ios结尾的文件里面的内容是无法查看的,所以需要先挂载到一个目录下在进行查看。
如:
mount -o loop linux.iso /tmp/isofs/ :将linux.iso文件挂载到/tmp/isofs/目录下
2,卸载文件系统:umount
格式:umount 设备名/挂载点(推荐使用通过挂载点的方式卸载文件系统)
常用命令选项:
-a :卸载所有已挂载的非伪文件系统
注:伪文件系统:不能往里面存储数据的文件系统
例如系统中的保留空间,用df-hT命令查看到的tmpfs文件类型的那个文件系统/dev/shm即为一个伪文件系统。
示例:
[root@localhost ~]# df -hT
文件系统类型容量已用 可用 已用% 挂载点
/dev/sda2 ext3 19G 2.7G 16G 15% /
/dev/sda1 ext3 99M 12M 82M 13% /boot
tmpfs tmpfs 1005M 0 1005M 0% /dev/shm
/dev/sdb1 ext3 19G 173M 18G 1% /data/tools
/dev/sdb2 ext3 19G 173M 18G 1% /data/soft
/dev/sdb6 ext3 9.2G 150M 8.6G 2% /data/game
/dev/sda5 ext3 19G 173M 18G 1% /home
[root@localhost ~]# umount /data/game //从挂载点将/dev/sdb6文件系统卸载
[root@localhost ~]# df -hT | grep sda6 //卸载之后没有任何关于sda6的信息了
[root@localhost ~]#
四,文件系统管理:e2abel、blkid、tun2fs、df
1,设置卷标:e2label命令
格式:e2label 设备名 [“卷标名”]
注:
设置完卷标之后,可以通过mount -L 卷标名 挂载点来挂载一个文件系统;
在/etc/fstab文件中,第一个字段,也可以使用卷标名来表示一个磁盘分区。
示例:
[root@localhost ~]# e2label /dev/sda6 //查看
//无内容
[root@localhost ~]# e2label /dev/sda6 "disk6" //修改卷标名
[root@localhost ~]# e2label /dev/sda6 //查看修改结果
disk6 //修改后的卷标名为disk6
[root@localhost ~]# e2label /dev/sda6 "" //删除卷标名
[root@localhost ~]# e2label /dev/sda6 //再次查看,没有卷标名了
[root@localhost~]#
2,查看设备的UUID:blkid命令
blkid命令:
blkid 设备名...
示例:
[root@localhost ~]# blkid /dev/sda3 /dev/sda6 //查看sda3和sda6的UUID
/dev/sda3:LABEL="/data" UUID="85efcd90-d05a-45b3-9af6-ee151591c652"TYPE="ext3" SEC_TYPE="ext2"
/dev/sda6: UUID="88c52aff-337b-4775-9c77-8c19ffc2cd3c"SEC_TYPE="ext2" TYPE="ext3" LABEL="disk6"
[root@localhost ~]#
注:如果是windows分区的话,没有UUID
切TYPE选项为:TYPE=”vfat”或者为TYPE=”ntfs”
示例:下面的/dev/sda5文件系统为ntfs格式,用blkid查看时候直接格式为ntfs
[root@localhostdata]# blkid /dev/sda5
/dev/sda5: TYPE="ntfs"
3,查看ext分区属性:tune2fs
格式:tune2fs -l 设备名
注:在使用tune2fs -l 设备名命令查看一个文件系统是否具有acl访问控制的时候,只能查看创建系统时候的分区,而新加的分区或新加硬盘上的分区,即使是具有acl访问控制,也不能查看到。
详细信息请查看:http://murongqingqqq.blog.51cto.com/2902694/1361506中的补充1
示例:
[root@localhost ~]# tune2fs -l /dev/sda3 //查看sda3的分区属性
tune2fs1.39 (29-May-2006)
Filesystemvolume name: /data
Lastmounted on: <notavailable>
FilesystemUUID: 85efcd90-d05a-45b3-9af6-ee151591c652
Filesystemmagic number: 0xEF53
Filesystemrevision #: 1 (dynamic)
Filesystemfeatures: has_journal resize_inodedir_index filetype needs_recovery sparse_super large_file
Defaultmount options: user_xattr acl //支持acl
Filesystemstate: clean
Errorsbehavior: Continue
FilesystemOS type: Linux
Inodecount: 2560864
Blockcount: 2560359
Reservedblock count: 128017
Freeblocks: 2379760
Freeinodes: 2557126
Firstblock: 0
Blocksize: 4096
Fragmentsize: 4096
ReservedGDT blocks: 625
Blocksper group: 32768
Fragmentsper group: 32768
Inodesper group: 32416
Inodeblocks per group: 1013
Filesystemcreated: Tue Feb 11 04:45:08 2014
Lastmount time: Fri Feb 21 22:11:462014
Lastwrite time: Fri Feb 21 22:11:462014
Mountcount: 9
Maximummount count: -1
Lastchecked: Tue Feb 11 04:45:08 2014
Checkinterval: 0 (<none>)
Reservedblocks uid: 0 (user root)
Reservedblocks gid: 0 (group root)
Firstinode: 11
Inodesize: 128
Journalinode: 8
Defaultdirectory hash: tea
DirectoryHash Seed: 63658a00-6d9c-480e-8c30-330a6318036d
Journalbackup: inode blocks
[root@localhost ~]#
4,查看磁盘使用情况:df命令
常用命令选项:
-h :使用易读的容量单位
-T :列出文件系统类型
[root@localhost ~]# df -Th
文件系统类型容量已用 可用 已用% 挂载点
/dev/sda2 ext3 19G 2.3G 16G 13% /
/dev/sda1 ext3 190M 12M 169M 7% /boot
tmpfs tmpfs 248M 0 248M 0% /dev/shm
/dev/sda3 ext3 9.5G 393M 8.6G 5% /data
[root@localhost ~]#
五,开机自动挂载:/etc/fstab
配置开机自动挂载:/etc/fstab文件
配置文件/etc/fstab,其内容可以以空格或制表位分为6列,每一列的表示的内容如下所示:
[root@localhost ~]# cat /etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
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
LABEL=SWAP-sda3 swap swap defaults 0 0
第1段 2 3 4 5 6
每一段表示的内容:
第一段:表示设备文件(也可以为UUID、设备名和卷标)
第二段:表示挂载点
第三段:表示文件系统类型
第四段:挂载参数
第五段:备份标记(为0表示不备份)
第六段:检测顺序(为0表示不检测)
示例:设置开机自动挂载(包括交换分区)
第一步:查看挂载情况和交换分区的大小;
如果有新的挂在点,先卸载;如果有新的交换分区,先用swapoff 设备名卸载交换分区。
[root@localhost ~]# df -Th //首先查看一下文件系统的挂载情况
文件系统类型容量已用 可用 已用% 挂载点
/dev/sda2 ext3 19G 2.7G 16G 15% /
/dev/sda1 ext3 99M 12M 82M 13% /boot
tmpfs tmpfs 1005M 0 1005M 0% /dev/shm
[root@localhost ~]# free -m //原始交换分区为我的sda磁盘上的一个分区大小为2G
total used free shared buffers cached
Mem: 2008 911 1096 0 85 649
-/+buffers/cache: 176 1831
Swap: 2047 0 2047
[root@localhost ~]#
第二步:修改fstab文件内容,增加开机挂载项;
注:
-这里大部分使用的为UUID,需使用blkid先查询设备的UUID
-/dev/sdb5为交换分区,交换分区的第二段挂载点为swap,第三段文件系统类型还是swap,挂载swap分区的时候需要注意一下!
[root@localhost ~]# vim /etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
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
LABEL=SWAP-sda3 swap swap defaults 0 0
UUID="59b355ba-5f83-4016-b5bc-4257ae948359" /data/tools ext3 defaults 0 0
UUID="1497b080-ffaf-4fe1-95c7-c63d349550a9" /data/soft ext3 defaults 0 0
UUID="58fbc6d5-e597-42bf-9ee7-096f62dd41cc" /data/game ext3 defaults 0 0
UUID="a463550a-9d03-4934-81a4-e6f8be920f9a" /home ext3 defaults 0 0
/dev/sdb5 swap swap defaults 0 0
第三步:使用mount -a命令来重新加载一遍
然后用df -Th和free -m分别查看文件系统和交换分区的挂载情况。
[root@localhost ~]# mount -a
[root@localhost ~]# df -Th //可以看到下面文件系统已经加载成功了
文件系统类型容量已用 可用 已用% 挂载点
/dev/sda2 ext3 19G 2.7G 16G 15% /
/dev/sda1 ext3 99M 12M 82M 13% /boot
tmpfs tmpfs 1005M 0 1005M 0% /dev/shm
/dev/sda5 ext3 19G 173M 18G 1% /home
/dev/sdb1 ext3 19G 173M 18G 1% /data/tools
/dev/sdb2 ext3 19G 173M 18G 1% /data/soft
/dev/sdb6 ext3 9.2G 150M 8.6G 2% /data/game
[root@localhost ~]# free -m
//查看swap分区是否被挂载,可以看到和上边第一步查询的结果是一样的,那么即说明没有挂载,这时需要重新启动才能挂载。
total used free shared buffers cached
Mem: 2008 910 1097 0 86 649
-/+buffers/cache: 175 1832
Swap: 2047 0 2047
总结:可以使用mount-a来重新加载fstab内的文件系统,但是通过free -m可以看到,交换分区是没有加载成功的,若想要加载成功,则需要重新启动。
------
综合示例:迁移/home目录:http://murongqingqqq.blog.51cto.com/2902694/1361937
六:扩展
1,swap分区的规划、挂载和自动挂载
如果在安装系统时划分的swap分区过小,或者没有划分swap分区,这时可以从新加磁盘或者现有磁盘剩余空间中划分一个分区,并格式化为swap分区,挂载上使用。
swap分区的查看方式:
第一种:cat /proc/meminfo
第二种:swapon -s
第三种:free -m
[root@localhost ~]# free -m
total used free shared buffers cached
Mem: 2008 893 1115 0 73 648
-/+ buffers/cache: 170 1837
Swap: 2047 0 2047 //可以看到交换分区的大小为2G
建立swap分区的方式:
使用fdisk命令划分一个分区,并指定其格式(注:用t选项)为82,保存(w)即可。
注:在磁盘分区新划分之后需要用partprobe命令来从新加载系统分区信息!!!
swap分区的格式化方式:
使用mkswap 新交换分区来格式化一个新建立的交换分区
手动启用/关闭交换分区:
swapon/off 新交换分区
示例:新建swap的规划,挂载,自动挂载请查看:http://murongqingqqq.blog.51cto.com/2902694/1361934
2,挂载文件夹
用途:主要是隐藏源目录的路径,比如说将/usr/src/目录挂载到/media/tools/src/目录下做共享,那么其他用户(如user1)在访问/usr/src/目录下资源的时候,可以直接进入
/media/tools/src/下直接访问资源,保证了/usr/src/目录的安全性。
注:在挂载的时候需要有目标文件夹/media/tools/src,如果没有需要先创建;而且保证目标文件夹不被其他文件系统或文件夹占用挂载。如果有,则需先卸载。
挂载文件夹的时候需要mount命令的- -bind参数:
示例:将/usr/src/文件夹挂载到/data/tools/src/目录下:
思路:
第一步:创建目录/data/tools/src/目录
第二步:将/usr/src/文件夹挂载到/data/tools/src/目录下
第三步:验证是否挂载成功
第四步:使用user1用户登录系统,进入/data/tools/src/目录访问资源。
具体操作:
[root@localhost ~]# mkdir -p /data/tools/src
[root@localhost ~]# ls /usr/src/
debug kernels
[root@localhost ~]# mount --bind /usr/src/ /data/tools/src/
[root@localhost ~]# mount | grep src
/usr/src on/data/tools/src type none (rw,bind)
[root@localhost ~]# ls /data/tools/src/
debug kernels
[root@localhost ~]# su - user1
[user1@localhost ~]$cd /data/tools/src/
[user1@localhostsrc]$ ls //成功访问
debug kernels
[user1@localhostsrc]$
3,autofs触发挂载
触发挂载,像/misc/cd目录即为触发挂载目录;
触发挂载:在misc目录里,用ls命令无法查看到里面有任何文件或目录,但是可以用cd命令切换到cd这个目录中去,当用cd切换到cd目录的时候,那么,光盘上的目录将会自动挂载到/misc/cd目录中,这就是触发挂载。
触发挂载的配置文件:/etc/auto.master和/etc/xxx(这个文件根据/etc/auto.master文件里面的内容来写)
/etc/auto.master文件的内容:
第一段:表示挂载点父目录
第二段:挂载配置文件xxx
/etc/xxx(这个文件为/etc/auto.master文件里面的第二段定义的挂载配置文件)文件内容:
第一段:挂载点子目录
第二段:挂载参数
第三段: :设备名(注:设备名前加“:”)
示例:将/dev/sdb1文件系统触发挂载到/abc/tools目录
第一步:创建/abc文件夹:mkdir /abc
第二步:为/etc/auto.master的内容增加一行
vim /etc/auto.master
增加一行:/abc /etc/auto.abc
第三步:根据/etc/auto.master文件内容,编辑配置文件/etc/auto.abc文件(新建)
vim /etc/auto.abc
添加内容:tools -fstype=ext3 :/dev/sdb1
第四步:重新加载服务:server autofs reload
第五步:用cd /abc/tools命令看是否能进入该目录,不出意外可以进入。
4, NTFS分区的创建,挂载,使用
注:linux系统默认是不支持NTFS格式的分区的,想要使其支持NTFS格式的分区,需要安装NTFS-3G软件。
下载NTFS-3G源码包的方式
2,wget http://www.ntfs-3g.org/ntfs-3g-1.1120.tgz
示例:
安装ntfs-3g源码包
将/dev/sda5磁盘分区格式化为NTFS分区,并用ntfs-3g来加载NTFS分区。
步骤:
第一步:解压源码包
tar zxvfntfs-3g_ntfsprogs-2013.1.13.tgz -C/usr/src/
第二步:编译安装(注:编译安装之前需要先安装gcc工具)
cd /usr/src/ntfs-3g_ntfsprogs-2013.1.13/
./configure--prefix=/opt/ntfs
make
make install
第三步:使用fdisk将/dev/sda5的分区类型改为7,即HPFS/NTFS格式并格式化
[root@localhost /]# fdisk /dev/sda
The number ofcylinders for this disk is set to 10443.
There is nothingwrong with that, but this is larger than 1024,
and could in certainsetups cause problems with:
1) software thatruns at boot time (e.g., old versions of LILO)
2) booting andpartitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m forhelp): t //t为修改分区类型
Partition number(1-5): 5 //sda5为第五个分区
Hex code (type L tolist codes): 7 //指定为7,如果不知道可输入L查看详细信息
Command (m forhelp): w //w为保存退出
The partition tablehas been altered!
Calling ioctl() tore-read partition table.
WARNING: Re-readingthe partition table failed with error 16: 设备或资源忙.
The kernel stilluses the old table.
The new table willbe used at the next reboot.
Syncing disks.
[root@localhost /]# mkfs.ntfs /dev/sda5 //将/dev/sda5分区格式化为ntfs格式
[root@localhost /]# fdisk -l /dev/sda | grep NTFS //查看NTFS分区
/dev/sda5 2825 5257 19543041 7 HPFS/NTFS
第四步:临时装载NTFS分区
[root@localhost /]# ntfs-3g /dev/sda5 /data/ntfs/ //装载ntfs分区
[root@localhost /]# mount | grep sda5
/dev/sda5on /data/ntfs type fuseblk(rw,allow_other,blksize=4096)
[root@localhost /]#
注:临时挂载成功,这一步为止,已经完成了NTFS格式分区的临时挂载。
第五步:如果需要设置开机自动挂载该NTFS分区,需要在/etc/fstab文件里面增加内容
格式为:
[root@localhost /]# cat /etc/fstab | grep sda5
/dev/sda5 /data/ntfs ntfs-3g defaults 0 0
[root@localhost /]#
第六步:验证
[root@localhost /]# umount /data/ntfs/ //卸载挂载点
[root@localhost /]# mount | grep sda5 //查看是否卸载成功
[root@localhost /]# mount -a //加载所有fstab已配置的文件系统
注:如果用mount -a能够加载/dea/sda5的话,那么重启肯定能加载。
[root@localhost /]# mount | grep sda5 //可以看到,挂载成功了!
/dev/sda5on /data/ntfs type fuseblk (rw,allow_other,blksize=4096)
[root@localhost /]#
注:挂载NTFS格式u盘的时候,由于系统默认不识别NTFS 格式的文件系统,即使是安装了ntfs-3g软件,也无法识别,这时,只能通过手动挂载,一般u盘在linux系统中被识别的文件系统为/dev/sdh*设备,也可能是/dev/sd*,使用ntfs-3g /dev/sd* 挂载目录挂载即可。