1. 程式人生 > >Linux中硬盤分區、文件系統

Linux中硬盤分區、文件系統

Linux 分區 文件系統

lsblk 查看塊設備
技術分享圖片
fdisk 支持msdos,在centos7中也支持gpt(不建議使用) 建議使用交互式
fdisk -l 查看所有硬盤的分區信息
fdisk -l /dev/sda 查看指定硬盤的分區信息
fdisk /dev/sdb
o 設置msdos分區表
g 設置gpt分區表(不建議使用)
m 幫助
n 創建分區
p 主分區
e 擴展分區 (請把所有空間分給擴展)
起始的扇區數 一般直接回車,取可用的最小扇區
結束的扇區數 一般用+XX K/M/G 來指定具體分多少大小的分區
q 退出不保存
w 退出並保存
t 設置分區的類型
L 查看分區的類型所對應的代碼表示方式
d 刪除指定分區
a 設置該分區為啟動分區,或設置為非啟動
p 顯示分區表
u 更新顯示分區起止的單位,在扇區和柱面之間切換
技術分享圖片
非交互方式
echo -e "n\np\n\n\n+1G\nw\n" |fdisk /dev/sdb &> /dev/null

gdisk 只能劃分gpt分區(很好記,gdisk --gpt都是g)也是建議使用交互式分區
gdisk -l 列出所有硬盤分區表
gdisk -l /dev/sdb 列出指定硬盤的分區表
gdisk /dev/sdb 對分區進行劃分
o 創建gpt分區表
m 幫助
n 創建分區
起始的扇區數 一般直接回車,取可用的最小扇區
結束的扇區數 一般用+XX K/M/G 來指定具體分多少大小的分區
q 退出不保存

w 退出並保存
t 設置分區的類型
L 查看分區的類型所對應的代碼表示方式
d 刪除指定分區
p 顯示分區表

非交互方式
echo -e "n\n\n\n+2G\n\nw\ny\n" |gdisk /dev/sdb
技術分享圖片
cat /proc/partitions 當前內核所加載的分區表(內核加載不等於)
對於非系統所在硬盤,內核自動更新分區表,而對於系統所在硬盤,不能直接列新,要使用以下命令
通知內核讀取分區表
cenots5\centos7: partprobe (centos6不可用)
centos6:partx -a /dev/sda 添加
partx -d --nr /dev/sda7 刪除
mkfs
mkfs.xfs /dev/sdb1

mkfs -t xfs -f /dev/sdb2
mkfs.ext4 /dev/sdb2
mkfs -t ext4 /dev/sdb2
mke2fs /dev/sdb2 格式化為ext2
mke2fs
mke2fs -j /dev/sdb2 增加日誌區,即格式化為ext3
-b block size
-t ext2|ext3|ext4
-L "LABEL"
e2label /dev/sdb2 僅限ext文件系統
e2label /dev/sdb2 hello
/etc/fstab
LABEL=mage1 /mnt/mage1 ext4 defaults 0 0
UUID=996b2280-1eaa-4560-b8e3-0c742912afa8 /mnt/mage2 ext4 defaults 0 0

[root@instructor_v7(nanyibo) ~]# blkid -U 996b2280-1eaa-4560-b8e3-0c742912afa8
/dev/sdb2
[root@instructor_v7(nanyibo) ~]# blkid -L mage1
/dev/sdb1
[root@instructor_v7(nanyibo) ~]# findfs /dev/sdb2
/dev/sdb2
[root@instructor_v7(nanyibo) ~]# findfs UUID=996b2280-1eaa-4560-b8e3-0c742912afa8
/dev/sdb2
[root@instructor_v7(nanyibo) ~]# findfs LABEL=mage1
/dev/sdb1

擴展分區swap
基於分區的Swap
fdisk /dev/sda
mkswap /dev/sda9
swapon /dev/sda9
開機自動激活,寫入/etc/fstab
基於文件的swap
dd if=/dev/zero of=swap.img bs=1M count=1024
mkswap swap.img
swapon /app/swap.img
開機自動激活,寫入/etc/fstab

mke2fs:ext系列文件系統專用管理工具
-t {ext2|ext3|ext4}
-b {1024|2048|4096} 指定block大小
-L ‘LABEL‘
-j: 相當於 -t ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i #: 為數據空間中每多少個字節創建一個inode;此大小不應該小於block的大小
-N #:指定分區中創建多少個inode
-I 一個inode記錄占用的磁盤空間大小,128---4096
-m #: 默認5%,為管理人員預留空間占總空間的百分比
-O FEATURE[,...]:啟用指定特性
-O ^FEATURE:關閉指定特性
技術分享圖片
硬盤
/dev/sdb
分區
/dev/sdb1
創建文件系統
/dev/sdb1

tune2fs:重新設定ext系列文件系統可調整參數的值
-l:查看指定文件系統超級塊信息;super block
-L ‘LABEL‘:修改卷標
-m #:修預留給管理員的空間百分比
-j: 將ext2升級為ext3
-O: 文件系統屬性啟用或禁用, –O ^has_journal
-o: 調整文件系統的默認掛載選項,–o ^acl ***
-U UUID: 修改UUID號
技術分享圖片
作業:
1、 創建一個2G的文件系統,塊大小為2048byte,預留1%可用空間,文件系統ext4,卷標為TEST,要求此分區開機後自動掛載至/test目錄,且默認有acl掛載選項
fdisk /dev/sda 創建分區
mke2fs –t ext4 –b 2048 –L TEST –m 1 /dev/sda6
vim /etc/fstab #增加一行sda6信息能自動開機掛載
UUID:x--x
tune2fs –o ^acl /dev/sda6
2、寫一個腳本,完成如下功能:
(1) 列出當前系統識別到的所有磁盤設備
(2) 如磁盤數量為1,則顯示其空間使用信息
否則,則顯示最後一個磁盤上的空間使用信息
A=fdisk -l|egrep -o "Disk /dev/sd[a-z]"|cut -d" " -f2
B=fdisk -l|egrep -o "Disk /dev/sd[a-z]"|cut -d" " -f2|wc -l
[ $B == 1 ] && echo df -h /dev/sda || df -h fdisk -l|egrep -o "Disk /dev/sd[a-z]"|tail -1|cut -d" " -f2
3、將CentOS6的CentOS-6.8-x86_64-bin-DVD1.iso和CentOS-6.8-x86_64-bin-DVD2.iso兩個文件,合並成一個CentOS-6.8-x86_64-Everything.iso文件,並將其配置為yum源
創建空目錄。復制文件
mkdir c6c7
cp iso1 c6/
cp iso2 c6/
#創建iso文件mkisofs -r -o centos6 /c6/
#掛載mount /c6/centos6 /mnt/
編輯倉庫
vim /etc/yum.repo.d/cento68every.repo
[centos6]
name=centos6
baseurl=file:///mnt
gpgchekc=0
enabled=1

Linux中硬盤分區、文件系統