linux下卸载 dev sd*下硬盘,Linux 磁盘管理(示例代码)
磁盤(pán)管理
Linux思想一切皆文件:
open(),read(),write(),close()
I/O 設(shè)備地址
設(shè)備類(lèi)型:
塊設(shè)備:block,存取單位“塊”,磁盤(pán) (隨機(jī)訪問(wèn))
字符設(shè)備:char,存取單位“字符”,鍵盤(pán) (邏輯訪問(wèn))
設(shè)備文件:關(guān)聯(lián)至一個(gè)設(shè)備驅(qū)動(dòng)程序,進(jìn)而能夠跟與之對(duì)應(yīng)硬件設(shè)備進(jìn)行通訊。
設(shè)備編號(hào):
ll /dev/sda*
root disk 8.0
root disk 8.1
每一個(gè)設(shè)備都擁有一個(gè)主要號(hào)碼,代表設(shè)備的類(lèi)型,第二個(gè)是同一類(lèi)型的唯一編號(hào)。
硬盤(pán)接口類(lèi)型:
并行:
IDE:133MB/s (家用)
SCSI:640MB/s ?(服務(wù)器)
串口:
SATA:6Gbps (家用)
SAS:6Gbps ? (服務(wù)器)
USB:480MB/s
rpm:?rotations per minute
每分鐘的轉(zhuǎn)速
磁盤(pán)設(shè)備的設(shè)備文件命名:/dev/DEV_FILE
IDE: /dev/hd
SCSI, SATA, SAS, USB: /dev/sd
不同設(shè)備:a-z
/dev/sda, /dev/sdb, …
同一設(shè)備上的不同分區(qū):1,2, …
/dev/sda1, /dev/sda5
磁頭 head
2磁頭數(shù) =1盤(pán)片
磁道 track
扇區(qū) sector (512字節(jié))
head 256 磁頭
track 1024 磁道
secror 63 扇區(qū)
CHS(culinder柱面)
culinder=track*head=512*63*256=8M
(centos6版本之后就不用整個(gè)柱面分區(qū))
LBA 邏輯尋址(6版本之后就使用)
分區(qū)
兩種分區(qū)方式:?MBR ,GPT
MBR: Master Boot Record,1982年,使用32位表示扇區(qū)數(shù),分區(qū)不超過(guò)2T
如何分區(qū):按柱面
0磁道0扇區(qū):512bytes
446bytes:boot loader
64bytes:分區(qū)表
16bytes:?標(biāo)識(shí)一個(gè)分區(qū)
2bytes:?55AA (識(shí)別是否有分區(qū))
4個(gè)主分區(qū);3主分區(qū)+1擴(kuò)展(N個(gè)邏輯分區(qū))
GPT:GUID(Globals Unique Identifiers)partition table 支持128個(gè)分區(qū),使用64位,支持8Z(512Byte/block )64Z (4096Byte/block)
使用128位UUID 表示磁盤(pán)和分區(qū)GPT分區(qū)表自動(dòng)備份在頭和尾兩份,并有CRC校驗(yàn)位
UEFI (統(tǒng)一擴(kuò)展固件接口)硬件支持GPT,使操作系統(tǒng)啟動(dòng)
EFI部分又可以分為4個(gè)區(qū)域:EFI信息區(qū)(GPT頭)、分區(qū)表、GPT分區(qū)、備份區(qū)域
linux 使用的分區(qū)方式
lilo
grub (5,6版本)
grub2(7版本之后使用)
echo "- – -"> /sys/class/scsi_host/host0/scan
掃描新添加的硬盤(pán)
(查看分區(qū))
lsblk 查看硬盤(pán)信息 (讀取內(nèi)存中的信息)
fdisk -l /dev/sdd 查看硬盤(pán)信息
hexdump -C -n 512 /dev/sda 查看磁盤(pán)前512字節(jié)的信息
dd if=/dev/sda of=/testdir/mbrbak bs=1 count=512
備份mbr
dd if=/testdir/mbrbak of=/dev/sdd
將磁盤(pán)中備份的磁盤(pán)信息放到sdd
dd if=/dev/zero of=/dev/sdd bs=1 count=446 將前446字節(jié)用0替代
dd if=/dev/zero of/=dev/sdd bs=1 count=2 skip=510 seek=510
用0代替最后兩個(gè)字節(jié)的分區(qū)標(biāo)識(shí)55AA。
最后兩位字節(jié)存儲(chǔ)標(biāo)識(shí)的55 AA變成00 00
dd if=/testdir/mbrbak of=/dev/sdd bs=1 count=2 skip=510 seek=510
恢復(fù)分區(qū)標(biāo)識(shí)
管理分區(qū)
列出塊設(shè)備
lsblk
創(chuàng)建分區(qū)使用:
fdisk創(chuàng)建MBR分區(qū),也支持GPT,對(duì)于一塊硬盤(pán),最多只能管理15分區(qū)
fdisk /dev/sdc
w:存盤(pán)退出
n:添加一個(gè)新的分區(qū)、柱面為單位,
p:顯示
d:刪除
q:不保存退出
t:更改分區(qū)類(lèi)型
gdisk創(chuàng)建GPT分區(qū)
查看內(nèi)核是否已經(jīng)識(shí)別新的分區(qū):
cat /proc/partations
partx -a /dev/sda (6使用這個(gè)指令)
partprobe
同步
GNU parted高級(jí)分區(qū)操作(創(chuàng)建、復(fù)制、調(diào)整大小等等)
parted /dev/sdc mklabel msdos
創(chuàng)建新的磁盤(pán)格式為MBR
parted /dev/sdc mklabel gpt
創(chuàng)建新的磁盤(pán)格式為GPT
fdisk -l /dev/sdc
查看分區(qū)的起始到結(jié)束點(diǎn),塊的數(shù)量,ID
parted /dev/sdc/mkpart primary 1 1024起始點(diǎn) 終止點(diǎn) ? ? ?創(chuàng)建一個(gè)分區(qū)
parted /dev/sdc/ rm 1
刪除/dev/sdc 第一個(gè)分區(qū)
partprobe-重新設(shè)置內(nèi)存中的內(nèi)核分區(qū)表版本
文件系統(tǒng)
文件系統(tǒng)是操作系統(tǒng)用于明確存儲(chǔ)設(shè)備或分區(qū)上的文件的方法和數(shù)據(jù)結(jié)構(gòu);
即在存儲(chǔ)設(shè)備上組織文件的方法。操作系統(tǒng)中負(fù)責(zé)管理和存儲(chǔ)文件信息的軟件結(jié)構(gòu)稱(chēng)為文件管理系統(tǒng),簡(jiǎn)稱(chēng)文件系統(tǒng)。
從系統(tǒng)角度來(lái)看,文件系統(tǒng)是對(duì)文件存儲(chǔ)設(shè)備的空間進(jìn)行組織和分配,負(fù)責(zé)文件存儲(chǔ)并對(duì)存入的文件進(jìn)行保護(hù)和檢索的系統(tǒng)。具體地說(shuō),它負(fù)責(zé)為用戶(hù)建立文件,存入、讀出、修改、轉(zhuǎn)儲(chǔ)文件,控制文件的存取,安全控制,日志,壓縮,加密等。
ext3(centos5)
ext4(centos6)
xfs(centos7)
光盤(pán):iso9660
網(wǎng)絡(luò)文件系統(tǒng):NFS,CIFS (Linux包 samba)
集群文件系統(tǒng):GFS2,OCFS2(oracle)
分布式文件系統(tǒng):ceph,moosefs,mogilefs,glusterfs,Lustre
RAW:未經(jīng)處理或者未格式化產(chǎn)生的文件系統(tǒng)
文件系統(tǒng)分類(lèi)
根據(jù)其是否支持"journal"功能:
日志型文件系統(tǒng):ext3, ext4, xfs, …
非日志型文件系統(tǒng):?ext2, vfat
文件系統(tǒng)的組成部分:
內(nèi)核中的模塊:ext4, xfs, vfat
用戶(hù)空間的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat
Linux的虛擬文件系統(tǒng):VFS
查前支持的文件系統(tǒng):cat /proc/filesystems
lsmod 可以查看設(shè)備的驅(qū)動(dòng)是否安裝成功
創(chuàng)建文件系統(tǒng)
mkfs.
mkfs -t ext4
mke2fs
mke2fs /dev/sdc1 建立ext文件系統(tǒng)
一個(gè)塊=4k
tune2fs -l /dev/sd*
超級(jí)塊是存儲(chǔ)關(guān)于塊的數(shù)據(jù),塊的大小,塊的元數(shù)據(jù)。
組超級(jí)塊,存儲(chǔ)塊的大小,和每個(gè)組有多少塊,塊的元數(shù)據(jù)。
超級(jí)塊會(huì)自動(dòng)備份。
blkid 查看盤(pán)的文件系統(tǒng)
tun2fs -o ^has_journal /dev/sd*
移除 日志功能,ext3變ext2
創(chuàng)建ext文件系統(tǒng)
mke2fs:ext系列文件系統(tǒng)專(zhuān)用管理工具
-t {ext2|ext3|ext4}
-b {1024|2048|4096}
-L ‘LABEL‘ 卷標(biāo)(卷標(biāo)名最好使用掛載點(diǎn)名字)
-j: 相當(dāng)于-t ext3
mkfs.ext3 = mkfs-t ext3 = mke2fs -j = mke2fs -t ext3
tune2fs -m 0 /dev/sda5
-i#: 為數(shù)據(jù)空間中每多少個(gè)字節(jié)創(chuàng)建一個(gè)inode;此大小不應(yīng)該小于block的大小
-N#:為數(shù)據(jù)空間創(chuàng)建個(gè)多少個(gè)inode
-I 一個(gè)inode記錄大小128—4096
-m #: 默認(rèn)5%,為管理人員預(yù)留空間占總空間的百分比
-O FEATURE[,…]:啟用指定特性
-O ^FEATURE:關(guān)閉指定特性
文件系統(tǒng)標(biāo)簽
blkid:塊設(shè)備屬性信息查看
-U UUID: 根據(jù)指定的UUID來(lái)查找對(duì)應(yīng)的設(shè)備
-L LABEL:根據(jù)指定的LABEL來(lái)查找對(duì)應(yīng)的設(shè)備
e2label /dev/sdc2 /mnt/sdc2
加卷標(biāo)
tune2fs
tune2fs:重新設(shè)定ext系列文件系統(tǒng)可調(diào)整參數(shù)的值
-l:查看指定文件系統(tǒng)超級(jí)塊信息;super block
-L ‘LABEL‘:修改卷標(biāo)
-m #:修預(yù)留給管理員的空間百分比
-j: 將ext2升級(jí)為ext3
-O: 文件系統(tǒng)屬性啟用或禁用,–O ^has_journal
-o: 調(diào)整文件系統(tǒng)的默認(rèn)掛載選項(xiàng),–o ^acl
-U UUID: 修改UUID號(hào)
ecntos6 手動(dòng)分區(qū)格式化ext 沒(méi)有acl功能
tune2fs -o acl /dev/sd*
ACL:
具有能再添加局限權(quán)限的能力,實(shí)現(xiàn)靈活的權(quán)限管理
Centos 7 默認(rèn)創(chuàng)建xfs 和ext4 文件系統(tǒng)有ACL功能。
Centos 7 版本之前,默認(rèn)手工創(chuàng)建的ext4文件系統(tǒng)無(wú)ACL功能。
手動(dòng)添加:
tune2fs -o acl /dve/sdb1
mount -o acl /dve/sbd1 /mnt
ACL 生效順序:所有者,自定義用戶(hù),自定義組,其他人。
tune2fs -l /dev/sd*
文件系統(tǒng)檢測(cè)和修復(fù)
常發(fā)生于死機(jī)或者非正常關(guān)機(jī)之后
掛載為文件系統(tǒng)標(biāo)記為“dirty”
fsck: File System Check
fsck.FS_TYPE
fsck-t FS_TYPE
-a: 自動(dòng)修復(fù)錯(cuò)誤
-r: 交互式修復(fù)錯(cuò)誤
fsck -y /dev/sd* 默認(rèn)在yes的選項(xiàng)下修復(fù)
不要在掛載的情況下修復(fù),不然修復(fù)會(huì)破壞元數(shù)據(jù)。
注意: FS_TYPE一定要與分區(qū)上已經(jīng)文件類(lèi)型相同;
fsck -a /dev/sd*
文件修復(fù)
e2fsck:ext系列文件專(zhuān)用的檢測(cè)修復(fù)工具
-y:自動(dòng)回答為yes
-f:強(qiáng)制修復(fù)
最大掛載次數(shù)和時(shí)間間隔會(huì)觸發(fā)fsck檢查命令。
fuser -v /mnt/sdb1 查看誰(shuí)在掛載使用用
fuser -km /mnt/sdb1 強(qiáng)行T出掛載
掛載點(diǎn)目錄一般為空
mount 查看掛載
cat /etc/mounts(特殊項(xiàng)都能看到)
掛載:將額外文件系統(tǒng)與根文件系統(tǒng)某現(xiàn)存的目錄建立起關(guān)聯(lián)關(guān)系,進(jìn)而使得此目錄做為其它文件訪問(wèn)入口的行為
卸載:為解除此關(guān)聯(lián)關(guān)系的過(guò)程
把設(shè)備關(guān)聯(lián)掛載點(diǎn):mount Point
mount
卸載時(shí):可使用設(shè)備,也可以使用掛載點(diǎn)
umount
掛載點(diǎn)下原有文件在掛載完成后會(huì)被臨時(shí)隱藏
掛載點(diǎn)目錄一般為空
mount常用命令選項(xiàng)
-t vsftype:指定要掛載的設(shè)備上的文件系統(tǒng)類(lèi)型
-r: readonly,只讀掛載
-w: read and write, 讀寫(xiě)掛載
-n: 不更新/etc/mtab,相當(dāng)于#mount
-a:自動(dòng)掛載所有支持自動(dòng)掛載的設(shè)備(定義在了/etc/fstab文件中,且掛載選項(xiàng)中有auto功能)
-L ‘LABEL‘: 以卷標(biāo)指定掛載設(shè)備
-U ‘UUID‘: 以UUID指定要掛載的設(shè)備
-B, –bind: 綁定目錄到另一個(gè)目錄上
查看內(nèi)核追蹤到的已掛載的所有設(shè)備:
cat /proc/mounts
mount -o remount,noatime /mnt/
取消掛載再重新掛載,不使用atime
mount -o noexec,noatime /mnt/
取消掛載再重新掛載,不使用執(zhí)行文件
不要輕易將掛載權(quán)限比普通用戶(hù)
創(chuàng)建了一個(gè)新的文件夾/mnt/sdd
將硬盤(pán)/dev/sdd 掛載在/mnt/sdd中
-o options:(掛載文件系統(tǒng)的選項(xiàng)),多個(gè)選項(xiàng)使用逗號(hào)分隔
async:異步模式
sync:同步模式,內(nèi)存更改時(shí),同時(shí)寫(xiě)磁盤(pán)
atime/noatime:包含目錄和文件
diratime/nodiratime:目錄的訪問(wèn)時(shí)間戳
auto/noauto:是否支持自動(dòng)掛載,是否支持-a選項(xiàng)
exec/noexec:是否支持將文件系統(tǒng)上運(yùn)行應(yīng)用程序
dev/nodev:是否支持在此文件系統(tǒng)上使用設(shè)備文件
suid/nosuid:不否支持suid和sgid權(quán)限
remount:重新掛載
ro:只讀
rw:讀寫(xiě)
user/nouser:是否允許普通用戶(hù)掛載此設(shè)備,默認(rèn)管理員才能掛載
acl:啟用此文件系統(tǒng)上的acl功能
Defaults:相當(dāng)于rw, suid, dev, exec, auto, nouser, async
總結(jié)
以上是生活随笔為你收集整理的linux下卸载 dev sd*下硬盘,Linux 磁盘管理(示例代码)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux 跑天龙八部游戏脚本,求推荐天
- 下一篇: 操作系统课设之Linux 进程间通信