文件系統操作與磁盤管理
"rootfs" : (Root File System)它是 Ramfs(Ramfs 是一個非常簡單的 Linux 文件系統用於實現磁盤緩存機制作爲動態可調整大小的基於 ram 的文件系統)或者 tmpfs 的一個特殊實例,它作爲系統啓動時內核載入內存之後,在掛載真正的的磁盤之前的一個臨時文件系統。通常的主機會在系統啓動後用磁盤上的文件系統替換.
查看磁盤和目錄容量
df (-h)
查看目錄容量 du
du -h -d (0、1) 目錄
-h human-readable
-d 查看目錄的深度
0:一級目錄
1:二級目錄
dd命令
Linux 的很重要的一點,一切即文件,在 Linux 上,硬件的設備驅動(如硬盤)和特殊設備文件(如/dev/zero和/dev/random)都像普通文件一樣,只要在各自的驅動程序中實現了對應的功能,dd 也可以讀取自和/或寫入到這些文件
dd命令:默認從標準輸入中讀取,並寫入到標準輸出中,但可以用選項if(input file,輸入文件)和of(output file,輸出文件)改變.
- dd命令從標準輸入讀入用戶輸入到輸出到文件:
dd of=test bs=10 count=1 #
或者 dd if=/dev/stdin of=test bs=10 count=1 - dd命令從標準輸入讀入用戶輸入輸出到標準輸出:
dd if=/dev/stdin of=/dev/stdout bs=10 count=1
bs(block-size):用於指定塊大小(缺省單位爲Byte,也可爲其指定如’K’,’M’,’G’等單位)
count:用於指定塊數量 - dd在拷貝的同時還可以實現數據轉換:
將輸出的英文字符轉換爲大寫再寫入文件:
dd if=/dev/stdin of=test bs=10 count=1 conv=ucase
創建虛擬磁盤
loop設備:在類 UNIX 系統中,/dev/loop(或稱vnd (vnode disk)、lofi(循環文件接口))是一種僞設備,這種設備使得文件可以如同塊設備一般被訪問。在使用之前,循環設備必須與現存文件系統上的文件相關聯。這種關聯將提供給用戶一個應用程序接口,接口將允許文件視爲塊特殊文件(參見設備文件系統)使用。因此,如果文件中包含一個完整的文件系統,那麼這個文件就能如同磁盤設備一般被掛載
- 從/dev/zero設備創建一個容量爲 256M 的空文件:
dd if=/dev/zero of=virtual.img bs=1M count=256 - 將這個文件格式化(寫入文件系統):
- 使用 mkfs 命令格式化磁盤(我們這裏是自己創建的虛擬磁盤鏡像),將我們的虛擬磁盤鏡像格式化爲ext4文件系統 :
mkfs.ext4 virtual.img - 查看Linux支持的文件系統:
ls -l /lib/modules/$(uname -r)/kernel/fs
- 使用 mkfs 命令格式化磁盤(我們這裏是自己創建的虛擬磁盤鏡像),將我們的虛擬磁盤鏡像格式化爲ext4文件系統 :
- 使用 mount 命令掛載磁盤到目錄樹:
- 常用操作:mount [options] [source] [directory]
mount [-o [操作選項]] [-t 文件系統類型] [-w|–rw|–ro] [文件系統源] [掛載點] - 掛載我們創建的虛擬磁盤鏡像到/mnt目錄:
mount -o loop -t ext4 virtual.img /mnt - 也可以省略掛載類型,很多時候 mount 會自動識別
- 以只讀方式掛載:
mount -o loop –ro virtual.img /mnt
或者mount -o loop,ro virtual.img /mnt - 查看下主機已經掛載的文件系統:
sudo mount - 命令格式 sudo umount 已掛載設備名或者掛載點:
sudo umount /mnt
- 常用操作:mount [options] [source] [directory]
- 使用 fdisk 爲磁盤分區
- 查看硬盤分區表信息:
sudo fdisk -l - 進入磁盤分區模式:
sudo fdisk virtual.img - 操作完成後輸入p查看結果
- 最後不要忘記輸入w寫入分區表
- 查看硬盤分區表信息:
- 使用 losetup 命令建立鏡像與迴環設備的關聯:
sudo losetup /dev/loop0 virtual.img
- 如果提示設備忙你也可以使用其它的迴環設備,”ls /dev/loop*”參看所有迴環設備
- 解除設備關聯:
sudo losetup -d /dev/loop0
- 使用mkfs格式化各分區(前面我們是格式化整個虛擬磁盤鏡像文件或磁盤),不過格式化之前,我們還要爲各分區建立虛擬設備的映射,用到kpartx工具
sudo apt-get install kpartx
sudo kpart kpartx -av /dev/loop0
- 取消映射
sudo kpart kpartx -dv /dev/loop0
- 取消映射
- 接着再是格式化,我們將其全部格式化爲 ext4:
- sudo mkfs.ext4 -q /dev/mapper/loop0p1
- sudo mkfs.ext4 -q /dev/mapper/loop0p5
- sudo mkfs.ext4 -q /dev/mapper/loop0p6
- 格式化完成後在/media目錄下新建四個空目錄用於掛載虛擬磁盤
mkdir -p /media/virtualdisk_{1..3}
- 掛載磁盤分區:
sudo mount /dev/mapper/loop0p1 /media/virtualdisk_1
sudo mount /dev/mapper/loop0p5 /media/virtualdisk_2
sudo mount /dev/mapper/loop0p6 /media/virtualdisk_3 - 卸載磁盤分區
sudo umount /dev/mapper/loop0p1
sudo umount /dev/mapper/loop0p5
sudo umount /dev/mapper/loop0p6
- 掛載磁盤分區: