linux下硬碟的操作以及關於硬碟的一些理解

2022-04-10 11:45:42 字數 3828 閱讀 5791

linux的磁碟管理:他的目錄和磁碟分割槽相互獨立,用掛載相互關聯,解除安裝取消關聯。

1.fdisk

fdisk -l     用來列出來我們硬碟的分割槽情況

fdisk /dev/sda 用來管理sda硬碟,比如說增、刪等等操作,具體的可以用fdisk -m 來檢視命令

2.mkfs

用來格式化分割槽,或者說是給分割槽格式化他的檔案系統。用命令

ls /sbin/mkfs*

可以檢視我們有那些可以使用的檔案系統。

比如用命令  mkfs -t ext4 /dev/ext4   就可以給相應的分割槽make它的filesystem

3 新增swap分割槽

mkswap /dev/sda# 用來分配swap

swapon /dev/sda#  用來啟用剛剛分配的swap

4 mount和umount用來掛載和解除安裝檔案系統

在fdisk -l 可以檢視分割槽掛載在那個資料夾下面。

mount /dev/sda# dir   將分割槽掛載在某乙個資料夾上面了。

mount          檢視掛載列表。

umount dir    可以用來解除安裝

mount -t iso9660 /dev/cdrom dir 將乙個映象檔案掛載到乙個資料夾

/etc/fstab是一開機就會執行這個檔案,所以我們把命令寫在這個檔案裡面就不用每次都寫上面的命令才能讀iso

5 df 檢視掛載空間使用情況

6 用free可以檢視物理記憶體和swap的使用情況

1.inode的存在 & 讀取檔案的順序

unix/linux系統內部不使用檔名,而使用inode號碼來識別檔案。對於系統來說,檔名只是inode號碼便於識別的別稱或者綽號。表面上,使用者通過檔名,開啟檔案。實際上,系統內部這個過程分成三步:首先,系統找到這個檔名對應的inode號碼;其次,通過inode號碼,獲取inode資訊;最後,根據inode資訊,找到檔案資料所在的block,讀出資料。

2.硬鏈結 & 軟鏈結

一般情況下,檔名和inode號碼是"一一對應"關係,每個inode號碼對應乙個檔名。但是,unix/linux系統允許,多個檔名指向同乙個inode號碼。這意味著,可以用不同的檔名訪問同樣的內容;對檔案內容進行修改,會影響到所有檔名;但是,刪除乙個檔名,不影響另乙個檔名的訪問。這種情況就被稱為"硬鏈結"(hard link)。

除了硬鏈結以外,還有一種特殊情況。檔案a和檔案b的inode號碼雖然不一樣,但是檔案a的內容是檔案b的路徑。讀取檔案a時,系統會自動將訪問者導向檔案b。因此,無論開啟哪乙個檔案,最終讀取的都是檔案b。這時,檔案a就稱為檔案b的"軟鏈結"(soft link)或者"符號鏈結(symbolic link)。

3.磁碟的單位

磁碟-->inode、blocks-->sector扇區(512位元組)

4.理解inode的特殊作用

由於inode號碼與檔名分離,這種機制導致了一些unix/linux系統特有的現象。

1. 有時,檔名包含特殊字元,無法正常刪除。這時,直接刪除inode節點,就能起到刪除檔案的作用。

2. 移動檔案或重新命名檔案,只是改變檔名,不影響inode號碼。

3. 開啟乙個檔案以後,系統就以inode號碼來識別這個檔案,不再考慮檔名。因此,通常來說,系統無法從inode號碼得知檔名。

第3點使得軟體更新變得簡單,可以在不關閉軟體的情況下進行更新,不需要重啟。因為系統通過inode號碼,識別執行中的檔案,不通過檔名。更新的時候,新版檔案以同樣的檔名,生成乙個新的inode,不會影響到執行中的檔案。等到下一次執行這個軟體的時候,檔名就自動指向新版檔案,舊版檔案的inode則被**。

磁碟檔案部分來自:

---------------------------馬哥的linux關於磁碟及檔案系統的管理的筆記----------------------------

1、主流的硬碟還是機械式硬碟。

機械式:u盤、光碟、軟盤、硬體、磁帶

磁碟的機械式,而cpu等確是電氣式的,所以速度差別大。

2、磁軌(track),外面的磁軌要比外面的磁碟周長長,所以外面的磁軌可以儲存更多的東西。所以,為了便於管理,所以磁軌被分為扇區(sector),儲存有資料和磁軌本身的資訊,512byte。

它的每乙個盤面上都有乙個讀寫磁頭。他們都是在乙個機械臂上。所以有柱面(cylinder)概念。

每寫入乙個檔案都是在好幾個盤面上寫入資料。所以不同盤面的相同編號的磁軌組成柱面(cylinder)。

分割槽(partition),如果不劃分分割槽,那麼整個磁碟只能有乙個檔案系統。分割槽是乙個磁碟的邏輯分割槽。分割槽是用來建立獨立的檔案系統的。

mbr(master boot record)在第0磁軌的0扇區,一共512位元組。他是獨立於檔案系統的,是屬於磁碟的。

前446bytes:bootloader

64bytes:每16bytes標識乙個分割槽,是乙個分割槽表

2bytes:magic number

3、裝置啟動順序

bios-->mbr(將mbr中的bootloader到記憶體),bios退出,bootloader獲得控制權-->讀取分割槽表-->到對應分割槽上找到對應分割槽的核心,核心獲得控制權

4、主分割槽+擴充套件分割槽<=4

5、磁碟分割槽是按柱面(cylinder)劃分的。

衡量乙個磁碟的乙個重要指標就是尋道時間,所以轉速很重要,它就影響尋道時間。筆記本的硬碟一般是5400r/min,台式電腦7200r,工業級scsi有10k、15k轉速的。當然轉速越快,發熱就越厲害。 硬碟裡面是真空的,千萬不能有一粒灰塵。

最外面的扇區與最裡面的扇區的:越靠外,它的線速度越快,所以他的讀取速度越快,所以c盤一般是在最外面的磁軌上。

6、分割槽 & 檔案系統

每個分割槽需要兩個部分:metadata以及儲存的資料。

檔案系統,簡單來講是乙個軟體,它也是儲存在磁碟上某一部分,它將磁碟上分成兩份,乙份是元資料儲存區,乙份是資料儲存區。將資料區又分成block,檔案儲存以block為單位。

我們在查詢空閒的時候要遍歷block還是很慢的,所以又乙個區域叫做塊點陣圖bitmap,將每乙個block對應乙個bit來標記這個block有沒有被用過。當我們要儲存資料的時候就直接掃瞄bitmap,這樣來迅速查詢空的block。

在思考,我們在刪除乙個檔案的時候在乙個可能導致index中間部分的空閒,當在儲存乙個檔案的時候,這個檔案的index放在哪兒,又要遍歷index表。所以出現了inode(index node),標識了檔案了全域性唯一,放了內容:inode、檔案的許可權、組、onwer、大小、時間戳等等,但就是沒有檔名。

在linux中,目錄也是檔案,檔名全放在目錄上。目錄磁碟塊上,每一行是inode、檔名。

note:分割槽中的主要有index、資料塊。資料塊用bitmap塊點陣圖標識有沒有被使用,inode檔案位圖標識index節點有沒有被使用。以上的四個概念都沒有涉及到檔名。檔案的檔名是儲存在乙個目錄檔案中的,目錄檔案中乙個條目記錄檔案與inode一一對應。

檔案查詢的過程可以參考

7、新建乙個檔案和刪除乙個檔案是什麼意思

新建:在目錄檔案中新增乙個條目,表示新新增的檔案;分配乙個inode;將檔案資料寫入分配給它的blocks

刪除:刪除目錄檔案中的條目;條目對應的inode號碼標記為空;在塊點陣圖標記為空,裡面的資料不動,所以可以恢復資料。

360的檔案粉碎機:就是將inode標記為空的時候還用一些資料(比如說全0)將block覆蓋。

8、檔案的複製與剪下

剪下,只是修改檔案的條目,這只是在同乙個分割槽上。但是,要是是跨分割槽的話那就乙個步驟都不能少。

Linux硬碟操作

將usb插入電腦,並使用df h檢視硬碟及其分割槽 對usb進行umount sudo umount dev sdc1找到需要寫入的iso檔案,並通過dd命令寫入 注意後邊不需要帶磁碟的序號 sudo dd if home jack ubuntu.18.04.iso of dev sdc然後就可以開...

關於Linux下的使用者操作

引用自 一。在ubuntu13.10下建立乙個新的使用者 step1 新增新使用者 useradd r m s bin bash 使用者名稱 step2 配置新使用者密碼 passwd 使用者名稱 step3 給新新增的使用者增加root許可權 vim etc sudoers 然後新增 使用者名稱 ...

linux下Redis以及c 操作

上篇部落格已經寫過,為了清楚的演示,再寫一遍。tar zxvf redis 2.8.7.tar.gz cd redis 2.8.7 sudo apt getinstall tcl redis測試程式需要tcl版本至少為8.5 make 32bit 64位系統直接使用make即可 sudo make ...