Android 格式化分區命令


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源碼包的方式

1,http://www.ntfs-3g.org

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* 掛載目錄掛載即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM