W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
根據(jù)前文講解的與管理硬件設(shè)備相關(guān)的理論知識(shí),我們先來(lái)理清一下添加硬盤設(shè)備的操作思路:首先需要在虛擬機(jī)中模擬添加入一塊新的硬盤存儲(chǔ)設(shè)備,然后再進(jìn)行分區(qū)、格式化、掛載等操作,最后通過(guò)檢查系統(tǒng)的掛載狀態(tài)并真實(shí)地使用硬盤來(lái)驗(yàn)證硬盤設(shè)備是否成功添加。
鑒于我們不需要為了做這個(gè)實(shí)驗(yàn)而特意買一塊真實(shí)的硬盤,而是通過(guò)虛擬機(jī)軟件進(jìn)行硬件模擬,因此這再次體現(xiàn)出了使用虛擬機(jī)軟件的好處。具體的操作步驟如下。
第1步:首先把虛擬機(jī)系統(tǒng)關(guān)機(jī),稍等幾分鐘會(huì)自動(dòng)返回到虛擬機(jī)管理主界面,然后單擊“編輯虛擬機(jī)設(shè)置”選項(xiàng),在彈出的界面中單擊“添加”按鈕,新增一塊硬件設(shè)備,如圖6-6所示。
圖6-6 在虛擬機(jī)系統(tǒng)中添加硬件設(shè)備
第2步:選擇想要添加的硬件類型為“硬盤”,然后單擊“下一步”按鈕就可以了,這確實(shí)沒(méi)有什么需要進(jìn)一步解釋的,如圖6-7所示。
圖6-7 選擇添加硬件類型
第3步:選擇虛擬硬盤的類型為SCSI(默認(rèn)推薦),并單擊“下一步”按鈕,這樣虛擬機(jī)中的設(shè)備名稱過(guò)一會(huì)兒后應(yīng)該為/dev/sdb,如圖6-8所示。
圖6-8 選擇硬盤設(shè)備類型
第4步:選中“創(chuàng)建新虛擬磁盤”單選按鈕,而不是其他選項(xiàng),再次單擊“下一步”按鈕,如圖6-9所示。
圖6-9 選擇“創(chuàng)建新虛擬磁盤”選項(xiàng)
第5步:將“最大磁盤大小”設(shè)置為默認(rèn)的20GB。這個(gè)數(shù)值是限制這臺(tái)虛擬機(jī)所使用的最大硬盤空間,而不是立即將其填滿,因此默認(rèn)20GB就很合適了。單擊“下一步”按鈕,如圖6-10所示。
圖6-10 設(shè)置硬盤的最大使用空間
第6步:設(shè)置磁盤文件的文件名和保存位置(這里采用默認(rèn)設(shè)置即可,無(wú)需修改),直接單擊“完成”按鈕,如圖6-11所示。
圖6-11 設(shè)置磁盤文件的文件名和保存位置
第7步:將新硬盤添加好后就可以看到設(shè)備信息了。這里不需要做任何修改,直接單擊“確認(rèn)”按鈕后就可以開(kāi)啟虛擬機(jī)了,如圖6-12所示。
圖6-12 查看虛擬機(jī)硬件設(shè)置信息
在虛擬機(jī)中模擬添加了硬盤設(shè)備后就應(yīng)該能看到抽象成的硬盤設(shè)備文件了。按照前文講解的udev服務(wù)命名規(guī)則,第二個(gè)被識(shí)別的SCSI設(shè)備應(yīng)該會(huì)被保存為/dev/sdb,這個(gè)就是硬盤設(shè)備文件了。但在開(kāi)始使用該硬盤之前還需要進(jìn)行分區(qū)操作,例如從中取出一個(gè)2GB的分區(qū)設(shè)備以供后面的操作使用。
在Linux系統(tǒng)中,管理硬盤設(shè)備最常用的方法就當(dāng)屬fdisk命令了。fdisk命令用于管理磁盤分區(qū),格式為“fdisk [磁盤名稱]”,它提供了集添加、刪除、轉(zhuǎn)換分區(qū)等功能于一身的“一站式分區(qū)服務(wù)”。不過(guò)與前面講解的直接寫到命令后面的參數(shù)不同,這條命令的參數(shù)(見(jiàn)表6-5)是交互式的,因此在管理硬盤設(shè)備時(shí)特別方便,可以根據(jù)需求動(dòng)態(tài)調(diào)整。
表6-5 fdisk命令中的參數(shù)以及作用
參數(shù) | 作用 |
---|---|
m | 查看全部可用的參數(shù) |
n | 添加新的分區(qū) |
d | 刪除某個(gè)分區(qū)信息 |
l | 列出所有可用的分區(qū)類型 |
t | 改變某個(gè)分區(qū)的類型 |
p | 查看分區(qū)表信息 |
w | 保存并退出 |
q | 不保存直接退出 |
第1步:我們首先使用fdisk命令來(lái)嘗試管理/dev/sdb硬盤設(shè)備。在看到提示信息后輸入?yún)?shù)p來(lái)查看硬盤設(shè)備內(nèi)已有的分區(qū)信息,其中包括了硬盤的容量大小、扇區(qū)個(gè)數(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)會(huì)要求您是選擇繼續(xù)輸入?yún)?shù)p來(lái)創(chuàng)建主分區(qū),還是輸入?yún)?shù)e來(lái)創(chuàng)建擴(kuò)展分區(qū)。這里輸入?yún)?shù)p來(lái)創(chuàng)建一個(gè)主分區(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)建一個(gè)主分區(qū)后,系統(tǒng)要求您先輸入主分區(qū)的編號(hào)。我們?cè)谇拔牡弥?,主分區(qū)的編號(hào)范圍是1~4,因此這里輸入默認(rèn)的1就可以了。接下來(lái)系統(tǒng)會(huì)提示定義起始的扇區(qū)位置,這不需要改動(dòng),我們敲擊回車鍵保留默認(rèn)設(shè)置即可,系統(tǒng)會(huì)自動(dòng)計(jì)算出最靠前的空閑扇區(qū)的位置。最后,系統(tǒng)會(huì)要求定義分區(qū)的結(jié)束扇區(qū)位置,這其實(shí)就是要去定義整個(gè)分區(qū)的大小是多少。我們不用去計(jì)算扇區(qū)的個(gè)數(shù),只需要輸入+2G即可創(chuàng)建出一個(gè)容量為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來(lái)查看硬盤設(shè)備中的分區(qū)信息。果然就能看到一個(gè)名稱為/dev/sdb1、起始扇區(qū)位置為2048、結(jié)束扇區(qū)位置為4196351的主分區(qū)了。這時(shí)候千萬(wàn)不要直接關(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)會(huì)自動(dòng)把這個(gè)硬盤主分區(qū)抽象成/dev/sdb1設(shè)備文件。我們可以使用file命令查看該文件的屬性,但是劉遄老師在講課和工作中發(fā)現(xiàn),有些時(shí)候系統(tǒng)并沒(méi)有自動(dòng)把分區(qū)信息同步給Linux內(nèi)核,而且這種情況似乎還比較常見(jiàn)(但不能算作是嚴(yán)重的bug)。我們可以輸入partprobe命令手動(dòng)將分區(qū)信息同步到內(nèi)核,而且一般推薦連續(xù)兩次執(zhí)行該命令,效果會(huì)更好。如果使用這個(gè)命令都無(wú)法解決問(wèn)題,那么就重啟計(jì)算機(jī)吧,這個(gè)殺手锏百試百靈,一定會(huì)有用的。
[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
如果硬件存儲(chǔ)設(shè)備沒(méi)有進(jìn)行格式化,則Linux系統(tǒng)無(wú)法得知怎么在其上寫入數(shù)據(jù)。因此,在對(duì)存儲(chǔ)設(shè)備進(jìn)行分區(qū)后還需要進(jìn)行格式化操作。在Linux系統(tǒng)中用于格式化操作的命令是mkfs。這條命令很有意思,因?yàn)樵赟hell終端中輸入mkfs名后再敲擊兩下用于補(bǔ)齊命令的Tab鍵,會(huì)有如下所示的效果:
[root@linuxprobe ~]# mkfs
mkfs mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.xfs
mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat
對(duì)!這個(gè)mkfs命令很貼心地把常用的文件系統(tǒng)名稱用后綴的方式保存成了多個(gè)命令文件,用起來(lái)也非常簡(jiǎn)單—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
終于完成了存儲(chǔ)設(shè)備的分區(qū)和格式化操作,接下來(lái)就是要來(lái)掛載并使用存儲(chǔ)設(shè)備了。與之相關(guān)的步驟也非常簡(jiǎn)單:首先是創(chuàng)建一個(gè)用于掛載設(shè)備的掛載點(diǎn)目錄;然后使用mount命令將存儲(chǔ)設(shè)備與掛載點(diǎn)進(jìn)行關(guān)聯(lián);最后使用df -h命令來(lái)查看掛載狀態(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
既然存儲(chǔ)設(shè)備已經(jīng)順利掛載,接下來(lái)就可以嘗試通過(guò)掛載點(diǎn)目錄向存儲(chǔ)設(shè)備中寫入文件了。在寫入文件之前,先介紹一個(gè)用于查看文件數(shù)據(jù)占用量的du命令,其格式為“du [選項(xiàng)] [文件]”。簡(jiǎn)單來(lái)說(shuō),該命令就是用來(lái)查看一個(gè)或多個(gè)文件占用了多大的硬盤空間。我們還可以使用du -sh /*命令來(lái)查看在Linux系統(tǒng)根目錄下所有一級(jí)目錄分別占用的空間大小。下面,我們先從某些目錄中復(fù)制過(guò)來(lái)一批文件,然后查看這些文件總共占用了多大的容量:
[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命令時(shí)提到,使用mount命令掛載的設(shè)備文件會(huì)在系統(tǒng)下一次重啟的時(shí)候失效。如果想讓這個(gè)設(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號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: