1. 程式人生 > >創建分區.磁盤掛載

創建分區.磁盤掛載

lte ant acl 選擇 dos per 設備 filesyste inux

1.4.1 fdisk分區:
小於2TB存儲磁盤, 可選分區工具fdisk
//生產分區建議: 如無特殊需求, 直接使用整個磁盤即可, 無需分區
//學習分區建議:1P+1E(3L) 2P+1E(2L) 3P+1E(1L) (僅適用於練習)

[root@oldboy ~]# fdisk -l
[root@oldboy ~]# fdisk /dev/sdb
Command (m for help): m //輸入m列出常用的命令
Command action
a toggle a bootable flag //切換分區啟動標記
b edit bsd disklabel //編輯sdb磁盤標簽

c toggle the dos compatibility flag //切換dos兼容模式
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 //創建新的Sun磁盤標簽
t change a partition‘s system id //修改分區ID,可以通過l查看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 //新建分區
Partition type:
p primary (0 primary, 0 extended, 4 free) //主分區
e extended //擴展分區
Select (default p): p //選擇主分區
Partition number (1-4, default 1): //默認回車
First sector (2048-2097151, default 2048): //默認扇區回車
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +50M //分配50MB

//創建擴展分區
Command (m for help): n //新建分區
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e //創建擴展分區
Partition number (2-4, default 2):
First sector (104448-2097151, default 104448):
Using default value 104448
Last sector, +sectors or +size{K,M,G} (104448-2097151, default 2097151): //默認劃分所有空間給擴展分區

//創建邏輯分區
Command (m for help): n //新建分區
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l //創建邏輯分區
Adding logical partition 5
First sector (106496-2097151, default 106496):
Using default value 106496
Last sector, +sectors or +size{K,M,G} (106496-2097151, default 2097151): +100M //分配100MB空間

//查看分區創建
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/sdb1 2048 104447 51200 83 Linux
/dev/sdb2 104448 2097151 996352 5 Extended
/dev/sdb5 106496 311295 102400 83 Linux

//保存分區
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

//檢查磁盤是否是MBR分區方式
[root@oldboy ~]# fdisk /dev/sdb -l|grep type
Disk label type: dos

//安裝parted, 刷新內核立即生效,無需重啟
[root@oldboy ~]# yum -y install parted
[root@oldboy ~]# partprobe /dev/sdb

1.4.2 gdisk分區:
大於2TB使用分區工具gdisk
//安裝gdisk工具
[root@oldboy ~]# yum install gdisk

[root@oldboy ~]# gdisk /dev/sdb
Command (? for help): n //創建新分區
Partition number (1-128, default 1):
First sector (34-2097118, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-2097118, default = 2097118) or {+-}size{KMGTP}: +500M //分配500M大小

Command (? for help): p //打印查看
Number Start (sector) End (sector) Size Code Name
1 2048 1026047 500.0 MiB 8300 Linux filesystem

Command (? for help): w //保存分區
Do you want to proceed? (Y/N): y //確認
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.

//檢查磁盤是否是gpt格式
[root@oldboy-node1 /]# fdisk /dev/sdb -l|grep type
Disk label type: gpt

//安裝parted, 刷新內核立即生效,無需重啟
[root@oldboy ~]# yum -y install parted
[root@oldboy ~]# partprobe /dev/sdb

1.5 創建文件系統:
格式化:低級格式化(分區之前進行,劃分磁道)、高級格式化(分區之後對分區進行,創建文件系統)
1.5.1 文件系統管理工具:
創建文件系統的工具
mkfs
檢測及修復文件系統的工具
fsck
查看其屬性的工具
dumpe2fs、tune2fs
調整文件系統的特性
tune2fs
-b //設定數據區塊占用空間大小,目前支持1024、2048、4096 bytes每個塊。
-t //用來指定什麽類型的文件系統,可以是ext4, xfs
-i //設定inode的大小
-N //設定inode數量,防止Inode數量不夠導致磁盤不足
-L //預設該分區的標簽label

//格式化整個sdb磁盤為ext4文件系統
[root@oldboy ~]# mkfs.ext4 /dev/sdb

//也可以格式化sdb1分區為xfs文件系統
[root@oldboy ~]# mkfs.xfs /dev/sdb1
1.5.2 元數據區、數據區
元數據區:inode
大小、權限、屬主屬組、時間戳、數據塊指針
符號鏈接文件:存儲數據指針的空間當中存儲的是真實文件的訪問路徑;
設備文件:存儲數據指針的空間當中存儲的是設備號;
/dev/sda1

1.5.3 VFS:Virtual File System
Linux的文件系統:ext2、ext3、ext4、xfs、reiserfs、btrfs
光盤:ISO9660
網絡文件系統:nfs、cifs
集群文件系統:gfs2、ocfs2
內核級分布式文件系統:ceph
Windows的文件系統:vfat、ntfs
偽文件系統:proc、sysfs、tmpfs、hugepagefs
Unix的文件系統:UFS、FFS、JFS
交換文件系統:SWAP
用戶空間的文件系統:mogilfs、moosefs、glusterfs

1.5.4 內核級文件系統的組成部分:
文件系統驅動:由內核提供
文件系統管理工具:由用戶空間的應用程序提供

1.6 磁盤掛載mount
在上面的內容中講到了磁盤的分區和格式化, 那麽格式化完了後, 如何使用, 這就涉及到了掛載這塊磁盤。

掛載分區前需要創建掛載點, 掛載點以目錄形式出現
如何往掛載點目錄寫入數據, 實際上會寫入到該分區
掛載點建議是空目錄, 不是也不影響掛載分區的使用
mount命令
mount [-fnrsvw] [-t vfsytpe] [-o options] device directory
-r:readonly
-w:read and write
-n:默認情況下,設備掛載或卸載的操作會同步更新至/etc/mtab文件中,-n用於禁止此特性;
-t:指明要掛載的設備上的文件系統的類型;多數情況下可以省略,此時mount會通過blkid來判斷掛載的設備的文件系統類型;
-L LABEL:掛載時以卷標的方式指明設備;
-U UUID:掛載時以UUID的方式指明設備;

-o options:掛載選項
    sync/async:同步/異步操作;
    atime/noatime:文件或目錄在被訪問時是否更新其訪問時間戳;
    diratime/nodiratime:目錄在被訪問時是否更新其訪問時間戳;
    remount:重新掛載;
    acl:支持使用acl功能;
        mount -o  acl device dir
        tune2fs -o acl device
    ro:只讀;
    rw:讀寫;
    dev/nodev:此設備上是否允許創建設備文件;
    exec/noexec:此設備上的文件是否允許運行;
    auto/noauto:
    user/nouser:是否允許普通用戶掛載此文件系統;
    suid/nosuid:是否允許程序文件上的suid和sgid特殊權限是否生效;
    relatime/norelatime:
    defaults:rw,suid,dev,exec,auto,nouser,async,relatime

/etc/fstab文件:
每行定義一個要掛載的文件系統及相關屬性;
6個字段:
1)要掛載的設備;
設備文件;
LABEL;
UUID;
偽文件系統:如sysfs,proc,tmpfs等;
2)掛載點
swap類型的設備的掛載點為swap;
3)文件系統類型;
4)掛載選項;
defaults:使用默認掛載選項;
如果需要同時指明多個掛載選項,彼此間以逗號分隔;
5)轉儲頻率(備份);
0:從不備份;
1:每天備份一次;
2:每隔一天備份一次;
6)自檢次序:
0:不自檢;
1:首先自檢,通常只能是根文件系統;
2:次級自檢;
使用UUID自動掛載:
[root@oldboy ~]# blkid /dev/sdb1 |awk ‘{print $2}‘ >> /etc/fstab
[root@oldboy ~]# blkid /dev/sdb2 |awk ‘{print $2}‘ >> /etc/fstab
[root@oldboy ~]# blkid /dev/sdb3 |awk ‘{print $2}‘ >> /etc/fstab
[root@oldboy ~]# blkid /dev/sdc1 |awk ‘{print $2}‘ >> /etc/fstab
[root@oldboy ~]# blkid /dev/sdc2 |awk ‘{print $2}‘ >> /etc/fstab
[root@oldboy ~]# cat /etc/fstab
……
UUID="f472fae5-3530-40dc-94ea-9d0fe30394a8" /data1 auto defaults 0 0
UUID="dfba5cd3-3702-446c-8286-9d83ac0e3e72" /data2 auto defaults 0 0
UUID="72e7ffd7-30e0-4233-ad71-ab0813fe7b80" /data3 auto defaults 0 0
UUID="ca0503b3-782b-4f17-b634-6d30e98ff830" /data4 auto defaults 0 0
UUID="2a1a8216-b725-4e07-85ff-e661cde2b53b" /data5 auto defaults 0 0

windows server 2008服務器操作系統
我們的移動設備(移動硬盤),有時通過USB接上以後,可以識別硬盤,但是看不到分區,是因為系統沒有自動分配分區盤符

1.6.1 臨時掛載磁盤
命令:mount掛載磁盤,實質為文件系統指定訪問入口
mount -t //指定文件系統掛載分區,如ext4, xfs
mount -a //讀取/etc/fstab配置文件的所有分區
mount -o //指定掛載參數

//fstab被損壞情況下,讓只讀文件系統可寫(正常情況下不使用)
[root@oldboy ~]#mount -o rw,remount /

//掛載/dev/sdb1至db1目錄
[root@oldboy ~]# mkdir /db1
[root@oldboy ~]# mount -t xfs /dev/sdb1 /db1/
1.6.2 永久掛載磁盤
//使用blkid命令獲取各分區的UUID
[root@oldboy ~]# blkid |grep "sdb1"
/dev/sdb1: UUID="e271b5b2-b1ba-4b18-bde5-66e394fb02d9" TYPE="xfs"

//使用UUID掛載磁盤sdb1分區至於db1, 臨時掛載
[root@oldboy ~]# mount UUID="e271b5b2-b1ba-4b18-bde5-66e394fb02d9" /db1

//也可以把下面這行寫到/etc/fstab中,永久掛載, 開機自動掛載
[root@oldboy ~]# tail -1 /etc/fstab
UUID=e271b5b2-b1ba-4b18-bde5-66e394fb02d9 /db1 xfs defaults 0 0

//加載fstab配置文件, 同時檢測語法是否有錯誤
[root@oldboy ~]# mount –a
fstab配置文件介紹

[root@oldboy ~]# vim /etc/fstab

//分區標識(UUID或設備名) 掛載點 文件類型 掛載參數 不檢查 不備份
UUID=e271b5b2-b1ba-4b18-bde5-66e394fb02d9 /db1 xfs defaults 0 0

//掛載參數, 可寫fstab配置文件, 也可以mount時使用-o參數指定
參數 參數意義 系統默認值
async 系統每隔一段時間把內存數據寫入磁盤中,
sync 時時同步內存和磁盤中數據;
suid,nosuid 允許/不允許分區有suid屬性 suid
rw,ro 可以指定文件系統是只讀(ro)或可寫(rw) rw
exec,noexec 允許/不允許可執行文件執行,不要掛載根分區 exec
user,nouser 允許/不允許root外的其他用戶掛載分區 nouser
auto,noauto 開機自動掛載/不自動掛載 auto
default 默認文件系統掛載設置 rw, suid, dev, exec, auto, nouser, async

//加載所有配置
[root@oldboy ~]# mount -a
1.6.3 卸載掛載磁盤
umount -lf //強制卸載掛載

//使用站點目錄卸載
[root@oldboy ~]# umount /db1
//使用設備名卸載/dev/sdb1
[root@oldboy ~]# umount /dev/sdb1

//umount不能卸載的情況
[root@oldboy db1]# umount /db1
umount: /db1: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1)

//如上情況解決辦法有兩種, 切換至其他目錄 或使用‘-l‘選項強制卸載
[root@oldboy db1]# umount -l /db1

創建分區.磁盤掛載