mkdos分割槽後 空間大小分布情況分析

2021-06-12 01:17:47 字數 1701 閱讀 6669

mkdos分割槽後 空間大小分布情況分析

空間分布情況如圖:

上圖引數如下:

第0號扇區:   引導扇區;

第1號扇區:   fsinfo 扇區;

第6號扇區:   備份引導扇區;

第7號扇區:   備份

fsinfo 扇區;

第0-31號扇區:   保留扇區數;

第32-15479號扇區:   fat1;

第15480-30927號扇區:   fat2;

第30928-15849471號扇區:   資料區(目錄也屬資料);

磁碟引數如下:

每簇扇區數: 8

fsinfo扇區中的空閒簇數: 0x001e2be5 = 1977317

fsinfo扇區中的下乙個空閒簇號:0x00000003 (根目錄已占用,0x00000002)

保留扇區數: 32

fat表扇區數:15448

fat表總數:2

整個磁碟扇區數:15849472   (0-15849471)

好了,讓我們來計算一下:

實際總空間大小扇區數(資料區) = 整個磁碟扇區數 -(

fat表扇區數*fat表總數 + 保留扇區數)

15849472  - (15448*2 + 32 ) = 15818544(扇區)

實際總空間大小簇數

: 15818544(扇區)

/8 = 1977318(簇)

剩餘空間大小簇數 = 實際總空間大小簇數 - 目錄已占用的一簇(第2簇)

1977318(簇) - 1 = 1977317(簇)(已跟fsinfo扇區中的空閒簇數相符合)

再看剩餘空間大小簇數是否與fat表的總簇數是否相等?

fat表總扇區數 = fat2扇區位址  - fat1扇區位址

15480 - 32 = 15448(扇區)

或root扇區位址 - fat2扇區位址   得出

30928 - 15480 = 15448 (扇區)

fat表總位元組數 = 15448

* 512 = 7909376 (位元組)

fat表總簇數 = 7909376 (位元組) / 4(位元組)  = 1977344 (簇)  //發現與前面計算1977317(簇)不一致??下面我們來分析一原因.

fat表可用簇數 =1977344 (簇) 

- 2 - 1 = 1977341(簇)  //前面兩個固定簇,1 個根目錄簇.

原因分析如下:

因為fat表以扇區為單位.如果不是15448(扇區)

,而是15447(扇區)會出現什麼情況呢?

fat錶能指向資料區的總簇數 =15447

* 512/4 = 1977216 (簇)//要比1977317(簇)少了101個簇.造成101*8*512=413696(位元組)浪費.

所以.在fat表上加多乙個扇區來儲存指標,也不要因為指標指不到造成浪費.fat表浪費也就浪浪費不到512位元組.兩個fat表也就不到512*2 = 1024位元組.

所以fat表最後乙個扇區的指標可能沒有指向可指向的空間,空間已經不夠了.由fat表計算剩餘簇空間是不準確的(可以特殊處理).

分配swap分割槽空間

1.分割槽,並修改為swap分割槽id root centos2 fdisk dev sdb 歡迎使用 fdisk util linux 2.23.2 更改將停留在記憶體中,直到您決定將更改寫入磁碟。使用寫入命令前請三思。命令 輸入 m 獲取幫助 t 分割槽號 1,2,4,5,預設 5 2 hex ...

增加分割槽空間

增加分割槽空間 root home 1 備份home cp r home homebak 2 解除安裝home umount home 程序占有 fuser m v i k home kill 9pid root bogon do you really want to remove active l...

增加swap空間 tmp分割槽

一 增加swap空間 增加swap空間的方法 1.使用dd建立乙個大檔案 dd if dev zero of u01 swapfile bs 1m count 512 2.使用mkswap格式化,使其變成swap分割槽 mkswap u01 swapfile 3.使其生效 swapon u01 sw...