W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
根據(jù)前文講解的與管理硬件設(shè)備相關(guān)的理論知識,我們先來理清一下添加硬盤設(shè)備的操作思路:首先需要在虛擬機(jī)中模擬添加入一塊新的硬盤存儲設(shè)備,然后再進(jìn)行分區(qū)、格式化、掛載等操作,最后通過檢查系統(tǒng)的掛載狀態(tài)并真實(shí)地使用硬盤來驗(yàn)證硬盤設(shè)備是否成功添加。
鑒于我們不需要為了做這個實(shí)驗(yàn)而特意買一塊真實(shí)的硬盤,而是通過虛擬機(jī)軟件進(jìn)行硬件模擬,因此這再次體現(xiàn)出了使用虛擬機(jī)軟件的好處。具體的操作步驟如下。
第1步:首先把虛擬機(jī)系統(tǒng)關(guān)機(jī),稍等幾分鐘會自動返回到虛擬機(jī)管理主界面,然后單擊“編輯虛擬機(jī)設(shè)置”選項,在彈出的界面中單擊“添加”按鈕,新增一塊硬件設(shè)備,如圖6-6所示。
圖6-6 在虛擬機(jī)系統(tǒng)中添加硬件設(shè)備
第2步:選擇想要添加的硬件類型為“硬盤”,然后單擊“下一步”按鈕就可以了,這確實(shí)沒有什么需要進(jìn)一步解釋的,如圖6-7所示。
圖6-7 選擇添加硬件類型
第3步:選擇虛擬硬盤的類型為SCSI(默認(rèn)推薦),并單擊“下一步”按鈕,這樣虛擬機(jī)中的設(shè)備名稱過一會兒后應(yīng)該為/dev/sdb,如圖6-8所示。
圖6-8 選擇硬盤設(shè)備類型
第4步:選中“創(chuàng)建新虛擬磁盤”單選按鈕,而不是其他選項,再次單擊“下一步”按鈕,如圖6-9所示。
圖6-9 選擇“創(chuàng)建新虛擬磁盤”選項
第5步:將“最大磁盤大小”設(shè)置為默認(rèn)的20GB。這個數(shù)值是限制這臺虛擬機(jī)所使用的最大硬盤空間,而不是立即將其填滿,因此默認(rèn)20GB就很合適了。單擊“下一步”按鈕,如圖6-10所示。
圖6-10 設(shè)置硬盤的最大使用空間
第6步:設(shè)置磁盤文件的文件名和保存位置(這里采用默認(rèn)設(shè)置即可,無需修改),直接單擊“完成”按鈕,如圖6-11所示。
圖6-11 設(shè)置磁盤文件的文件名和保存位置
第7步:將新硬盤添加好后就可以看到設(shè)備信息了。這里不需要做任何修改,直接單擊“確認(rèn)”按鈕后就可以開啟虛擬機(jī)了,如圖6-12所示。
圖6-12 查看虛擬機(jī)硬件設(shè)置信息
在虛擬機(jī)中模擬添加了硬盤設(shè)備后就應(yīng)該能看到抽象成的硬盤設(shè)備文件了。按照前文講解的udev服務(wù)命名規(guī)則,第二個被識別的SCSI設(shè)備應(yīng)該會被保存為/dev/sdb,這個就是硬盤設(shè)備文件了。但在開始使用該硬盤之前還需要進(jìn)行分區(qū)操作,例如從中取出一個2GB的分區(qū)設(shè)備以供后面的操作使用。
在Linux系統(tǒng)中,管理硬盤設(shè)備最常用的方法就當(dāng)屬fdisk命令了。fdisk命令用于管理磁盤分區(qū),格式為“fdisk [磁盤名稱]”,它提供了集添加、刪除、轉(zhuǎn)換分區(qū)等功能于一身的“一站式分區(qū)服務(wù)”。不過與前面講解的直接寫到命令后面的參數(shù)不同,這條命令的參數(shù)(見表6-5)是交互式的,因此在管理硬盤設(shè)備時特別方便,可以根據(jù)需求動態(tài)調(diào)整。
表6-5 fdisk命令中的參數(shù)以及作用
參數(shù) | 作用 |
---|---|
m | 查看全部可用的參數(shù) |
n | 添加新的分區(qū) |
d | 刪除某個分區(qū)信息 |
l | 列出所有可用的分區(qū)類型 |
t | 改變某個分區(qū)的類型 |
p | 查看分區(qū)表信息 |
w | 保存并退出 |
q | 不保存直接退出 |
第1步:我們首先使用fdisk命令來嘗試管理/dev/sdb硬盤設(shè)備。在看到提示信息后輸入?yún)?shù)p來查看硬盤設(shè)備內(nèi)已有的分區(qū)信息,其中包括了硬盤的容量大小、扇區(qū)個數(shù)等信息:
[root@linuxprobe ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x47d24a34.
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x47d24a34
Device Boot Start End Blocks Id System
第2步:輸入?yún)?shù)n嘗試添加新的分區(qū)。系統(tǒng)會要求您是選擇繼續(xù)輸入?yún)?shù)p來創(chuàng)建主分區(qū),還是輸入?yún)?shù)e來創(chuàng)建擴(kuò)展分區(qū)。這里輸入?yún)?shù)p來創(chuàng)建一個主分區(qū):
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
第3步:在確認(rèn)創(chuàng)建一個主分區(qū)后,系統(tǒng)要求您先輸入主分區(qū)的編號。我們在前文得知,主分區(qū)的編號范圍是1~4,因此這里輸入默認(rèn)的1就可以了。接下來系統(tǒng)會提示定義起始的扇區(qū)位置,這不需要改動,我們敲擊回車鍵保留默認(rèn)設(shè)置即可,系統(tǒng)會自動計算出最靠前的空閑扇區(qū)的位置。最后,系統(tǒng)會要求定義分區(qū)的結(jié)束扇區(qū)位置,這其實(shí)就是要去定義整個分區(qū)的大小是多少。我們不用去計算扇區(qū)的個數(shù),只需要輸入+2G即可創(chuàng)建出一個容量為2GB的硬盤分區(qū)。
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048):此處敲擊回車
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +2G
Partition 1 of type Linux and of size 2 GiB is set
第4步:再次使用參數(shù)p來查看硬盤設(shè)備中的分區(qū)信息。果然就能看到一個名稱為/dev/sdb1、起始扇區(qū)位置為2048、結(jié)束扇區(qū)位置為4196351的主分區(qū)了。這時候千萬不要直接關(guān)閉窗口,而應(yīng)該敲擊參數(shù)w后回車,這樣分區(qū)信息才是真正的寫入成功啦。
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x47d24a34
Device Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
第5步:在上述步驟執(zhí)行完畢之后,Linux系統(tǒng)會自動把這個硬盤主分區(qū)抽象成/dev/sdb1設(shè)備文件。我們可以使用file命令查看該文件的屬性,但是劉遄老師在講課和工作中發(fā)現(xiàn),有些時候系統(tǒng)并沒有自動把分區(qū)信息同步給Linux內(nèi)核,而且這種情況似乎還比較常見(但不能算作是嚴(yán)重的bug)。我們可以輸入partprobe命令手動將分區(qū)信息同步到內(nèi)核,而且一般推薦連續(xù)兩次執(zhí)行該命令,效果會更好。如果使用這個命令都無法解決問題,那么就重啟計算機(jī)吧,這個殺手锏百試百靈,一定會有用的。
[root@linuxprobe ]# file /dev/sdb1
/dev/sdb1: cannot open (No such file or directory)
[root@linuxprobe ]# partprobe
[root@linuxprobe ]# partprobe
[root@linuxprobe ]# file /dev/sdb1
/dev/sdb1: block special
如果硬件存儲設(shè)備沒有進(jìn)行格式化,則Linux系統(tǒng)無法得知怎么在其上寫入數(shù)據(jù)。因此,在對存儲設(shè)備進(jìn)行分區(qū)后還需要進(jìn)行格式化操作。在Linux系統(tǒng)中用于格式化操作的命令是mkfs。這條命令很有意思,因?yàn)樵赟hell終端中輸入mkfs名后再敲擊兩下用于補(bǔ)齊命令的Tab鍵,會有如下所示的效果:
[root@linuxprobe ~]# mkfs
mkfs mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.xfs
mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat
對!這個mkfs命令很貼心地把常用的文件系統(tǒng)名稱用后綴的方式保存成了多個命令文件,用起來也非常簡單—mkfs.文件類型名稱。例如要格式分區(qū)為XFS的文件系統(tǒng),則命令應(yīng)為mkfs.xfs /dev/sdb1。
[root@linuxprobe ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=256 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=524288, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
終于完成了存儲設(shè)備的分區(qū)和格式化操作,接下來就是要來掛載并使用存儲設(shè)備了。與之相關(guān)的步驟也非常簡單:首先是創(chuàng)建一個用于掛載設(shè)備的掛載點(diǎn)目錄;然后使用mount命令將存儲設(shè)備與掛載點(diǎn)進(jìn)行關(guān)聯(lián);最后使用df -h命令來查看掛載狀態(tài)和硬盤使用量信息。
[root@linuxprobe ~]# mkdir /newFS
[root@linuxprobe ~]# mount /dev/sdb1 /newFS/
[root@linuxprobe ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.5G 15G 20% /
devtmpfs 905M 0 905M 0% /dev
tmpfs 914M 140K 914M 1% /dev/shm
tmpfs 914M 8.8M 905M 1% /run
tmpfs 914M 0 914M 0% /sys/fs/cgroup
/dev/sr0 3.5G 3.5G 0 100% /media/cdrom
/dev/sda1 497M 119M 379M 24% /boot
/dev/sdb1 2.0G 33M 2.0G 2% /newFS
既然存儲設(shè)備已經(jīng)順利掛載,接下來就可以嘗試通過掛載點(diǎn)目錄向存儲設(shè)備中寫入文件了。在寫入文件之前,先介紹一個用于查看文件數(shù)據(jù)占用量的du命令,其格式為“du [選項] [文件]”。簡單來說,該命令就是用來查看一個或多個文件占用了多大的硬盤空間。我們還可以使用du -sh /*命令來查看在Linux系統(tǒng)根目錄下所有一級目錄分別占用的空間大小。下面,我們先從某些目錄中復(fù)制過來一批文件,然后查看這些文件總共占用了多大的容量:
[root@linuxprobe ~]# cp -rf /etc/* /newFS/
[root@linuxprobe ~]# ls /newFS/
abrt hosts pulse
adjtime hosts.allow purple
aliases hosts.deny qemu-ga
aliases.db hp qemu-kvm
alsa idmapd.conf radvd.conf
alternatives init.d rc0.d
anacrontab inittab rc1.d
………………省略部分輸入信息………………
[root@linuxprobe ~]# du -sh /newFS/
33M /newFS/
細(xì)心的讀者一定還記得,前面在講解mount命令時提到,使用mount命令掛載的設(shè)備文件會在系統(tǒng)下一次重啟的時候失效。如果想讓這個設(shè)備文件的掛載永久有效,則需要把掛載的信息寫入到配置文件中:
[root@linuxprobe ~]# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed May 4 19:26:23 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root / xfs defaults 1 1
UUID=812b1f7c-8b5b-43da-8c06-b9999e0fe48b /boot xfs defaults 1 2
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/cdrom /media/cdrom iso9660 defaults 0 0
/dev/sdb1 /newFS xfs defaults 0 0
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: