尋找簇大小

尋找簇大小

我正在運行 Ubuntu 11.04,我想知道如何找到分配單元的大小? Ubuntu 中有指令可以找到這個嗎?另外,根據分配單元的大小,檔案使用的硬碟空間總量是否會改變?我已經使用ls和檢查了文件大小du -b,在這兩種情況下我都得到了相同的值。

包括數據:

 sudo tune2fs -l <file system> 
  Block count:              8052736
  Reserved block count:     402636
  Free blocks:              2797402
  First block:              0
  Block size:               4096
  Reserved GDT blocks:      1022
  Blocks per group:         32768
   Inode blocks per group:   512
  Flex block group size:    16
  Reserved blocks uid:      0 (user root)
  Reserved blocks gid:      0 (group root)
  Journal backup:           inode blocks

那麼,如果區塊大小為4096字節,那麼小於4096的檔案在硬碟上佔用4096位元組的儲存空間,那麼大於4096位元組的檔案佔用多少空間呢?有沒有指令可以找到相同的?

答案1

置頂貼文編輯:
先發制人地找出尺寸:

temp = int(大小/塊)  
if mod(大小/塊) != 0:  
    溫度+=1
溫度=溫度*塊
列印溫度

了解檔案在磁碟上有多少個區塊:

LS-S

其中區塊大小是分區塊大小
,磁碟上的大小是區塊大小 * 區塊數

關於區塊大小術語差異的說明
sudo fdisk -l /dev/sda
,其中 /dev/sda 是有問題的硬碟

磁碟 /dev/sda:500.1 GB,500107862016 位元組
255個磁頭,63個扇區/磁軌,60801個柱面,總共976773168個扇區
單位 = 1 * 512 = 512 位元組的磁區
扇區大小(邏輯/物理):512 位元組/512 位元組
I/O 大小(最小/最佳):512 位元組/512 位元組
磁碟標識符:0x000c1f6b

   裝置引導開始結束區塊 ID 系統
/dev/sda1 * 63 498014 248976 83 Linux
/dev/sda2 498015 976768064 488135025 5 擴展
/dev/sda5 498078 976768064 488134993+ 83 Linux
這告訴你幾件事。其他人已經說得更好了,所以區塊引用:

問題是您必須牢記四個不同的單位。更糟的是,其中兩個單位同名。這些是不同的單位:

  1. 硬體塊大小,“扇區大小”
  2. 檔案系統區塊大小,“區塊大小”
  3. 核心緩衝區高速緩存區塊大小,“區塊大小”
  4. 分區表塊大小,“柱面大小”

為了區分檔案系統區塊大小和緩衝區快取區塊大小,我將遵循 FAT 術語並使用「簇大小」作為檔案系統區塊大小。

扇區大小是硬體處理的單位。此範圍介於不同的硬體類型之間,但大多數 PC 類型的硬體(軟碟、IDE 磁碟等)都使用 512 位元組磁區。

簇大小是檔案系統使用的分配單元,也是導致碎片的原因 - 我相信您知道這一點。在中等大小的 ext3 檔案系統上,這通常是 4096 字節,但您可以使用 dumpe2fs 進行檢查。請記住,這些通常也稱為“塊”,只是我在這裡將它們稱為簇。

簇大小是在 stat 緩衝區中的 st_blksize 中傳回的值,以便程式能夠計算檔案的實際磁碟使用情況。

區塊大小是核心在快取從儲存裝置(因此稱為「區塊裝置」)讀取的磁區時內部使用的緩衝區的大小。由於這是核心中最原始的儲存形式,因此所有檔案系統簇大小都必須是該大小的倍數。使用者空間程式幾乎總是引用這個區塊大小。例如,當您在不帶 -h 或 -H 選項的情況下執行“du”時,它將傳回一個檔案佔用了多少個區塊。 df 也會報告這些區塊的大小,fdisk -l 輸出中的「區塊」欄位就是這種類型,等等。這就是通常所說的“塊”。每個區塊適合兩個磁碟區。

柱面大小僅在分割表和 BIOS 中使用(Linux 不使用 BIOS)。

「df」僅在檔案系統上運行,所以,不,沒有檔案系統就不能使用它 - 沒有檔案系統,它返回的資料不存在。 “du”對單一檔案進行操作。

這裡

答案2

stat使用掛載點作為參數執行的命令,在IO Block屬性下顯示檔案系統的簇大小

stat /dev/shm/minifs-mounted

將會呈現

  File: /dev/shm/minifs-mounted
  Size: 1024            Blocks: 2          IO Block: 1024   directory
Device: 709h/1801d      Inode: 2           Links: 3
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-12-27 14:03:15.000000000 -0300
Modify: 2022-12-27 14:01:50.000000000 -0300
Change: 2022-12-27 14:01:50.000000000 -0300
 Birth: -

以上資訊屬於使用以下命令建立的檔案系統

cd /dev/shm
dd if=/dev/zero bs=1M count=100 of=minifs.img
mkfs.ext4 -b 1024 ./minifs.img
mount -o loop minifs.img minifs-mounted

強制 1024 位元組長的簇

相關內容