linux扇區
㈠ linux系統,每塊磁碟的第一個扇區主引導扇區的主要內容有 什麼和啟動引導程序
無論是Linux,還是DOS,windows,其磁碟的第一個扇區,也就是引導扇區,都由兩個部分組成。
第一部分是引導程序。操作系統會將自身啟動需要的引導程序寫入該部分,電腦加電啟動後,BIOS自檢結束,就會將系統控制權交給該區域的引導程序,引導操作系統啟動。
第二部分就是分區表。分區表內存貯了磁碟內主分區的劃分和配置,並確定那個分區是激活的分區,系統將從該分區上引導啟動。
㈡ Linux磁碟管理
是一個創建和維護分區表的程序,它兼容DOS類型的分區表、BSD或者SUN類型的磁碟列表。
語法
fdisk [必要參數][選擇參數]
必要參數:
-l 列出素所有分區表
-u 與"-l"搭配使用,顯示分區數目
選擇參數:
-s<分區編號> 指定分區
-v 版本信息
菜單操作說明
m :顯示菜單和幫助信息
a :活動分區標記/引導分區
d :刪除分區
l :顯示分區類型
n :新建分區
p :顯示分區信息
q :退出不保存
t :設置分區號
v :進行分區檢查
w :保存修改
x :擴展應用,高級功能
(英文全拼:make file system)命令用於在特定的分區上建立 linux 文件系統。
使用方式 :
mkfs [-V] [-t fstype] [fs-options] filesys [blocks]
參數 :
device : 預備檢查的硬碟分區,例如:/dev/sda1
-V : 詳細顯示模式
-t : 給定檔案系統的型式,Linux 的預設值為 ext2
-c : 在製做檔案系統前,檢查該partition 是否有壞軌
-l bad_blocks_file : 將有壞軌的block資料加到 bad_blocks_file 裡面
block : 給定 block 的大小
命令是經常會使用到的命令,它用於掛載Linux系統外的文件。
語法
mount [-hV]mount -a [-fFnrsvw] [-t vfstype]mount [-fnrsvw] [-o options [,...]] device | dir
mount [-fnrsvw] [-t vfstype] [-o options] device dir
參數說明:
-V:顯示程序版本
-h:顯示輔助訊息
-v:顯示較訊息,通常和 -f 用來除錯。
-a:將 /etc/fstab 中定義的所有檔案系統掛上。
-F:這個命令通常和 -a 一起使用,它會為每一個 mount 的動作產生一個行程負責執行。在系統需要掛上大量 NFS 檔案系統時可以加快掛上的動作。
-f:通常用在除錯的用途。它會使 mount 並不執行實際掛上的動作,而是模擬整個掛上的過程。通常會和 -v 一起使用。
-n:一般而言,mount 在掛上後會在 /etc/mtab 中寫入一筆資料。但在系統中沒有可寫入檔案系統存在的情況下可以用這個選項取消這個動作。
-s-r:等於 -o ro
-w:等於 -o rw
-L:將含有特定標簽的硬碟分割掛上。
-U:將檔案分割序號為 的檔案系統掛下。-L 和 -U 必須在/proc/partition 這種檔案存在時才有意義。
-t:指定檔案系統的型態,通常不必指定。mount 會自動選擇正確的型態。
-o async:打開非同步模式,所有的檔案讀寫動作都會用非同步模式執行。
-o sync:在同步模式下執行。
-o atime、-o noatime:當 atime 打開時,系統會在每次讀取檔案時更新檔案的『上一次調用時間』。當我們使用 flash 檔案系統時可能會選項把這個選項關閉以減少寫入的次數。
-o auto、-o noauto:打開/關閉自動掛上模式。
-o defaults:使用預設的選項 rw, suid, dev, exec, auto, nouser, and async.
-o dev、-o nodev-o exec、-o noexec允許執行檔被執行。
-o suid、-o nosuid:
允許執行檔在 root 許可權下執行。
-o user、-o nouser:使用者可以執行 mount/umount 的動作。
-o remount:將一個已經掛下的檔案系統重新用不同的方式掛上。例如原先是唯讀的系統,現在用可讀寫的模式重新掛上。
-o ro:用唯讀模式掛上。
-o rw:用可讀寫模式掛上。
-o loop=:使用 loop 模式用來將一個檔案當成硬碟分割掛上系統。
(base) zfy@zfy-PC:~$ sudo fdisk -l
Disk /dev/sda: 80 GiB, 85899345920 bytes, 167772160 sectors
#塊設備名稱為/dev/sda,此設備的大小為80 GB,85899345920 bytes是轉換成位元組後的大小,共167772160 個扇區
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3b1ffeba
Device Boot Start End Sectors Size Id Type
#分區序列 | 引導 | 開始 | 終止 | Sectors | 容量 | 分區類型ID | 分區類型
/dev/sda1 * 2048 3147775 3145728 1.5G 83 Linux
/dev/sda2 3147776 138412031 135264256 64.5G 5 Extended
/dev/sda3 138412032 161480703 23068672 11G 83 Linux
/dev/sda4 161480704 167770111 6289408 3G 82 Linux swap / Solaris
/dev/sda5 3149824 34605055 31455232 15G 83 Linux
/dev/sda6 34607104 66062335 31455232 15G 83 Linux
/dev/sda7 66064384 138412031 72347648 34.5G 83 Linux
Partition table entries are not in disk order.
a. 在虛擬機中添加硬碟,添加後使用fdisk -l命令查看,磁碟變成兩個,在sda中還沒有分區
root@zfy-PC:/home/zfy# fdisk -l
Disk /dev/sda: 2 GiB, 2147483648 bytes, 4194304 sectors
Disk model: VMware Virtual S
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 /dev/sdb: 80 GiB, 85899345920 bytes, 167772160 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3b1ffeba
Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 2048 3147775 3145728 1.5G 83 Linux
/dev/sdb2 3147776 138412031 135264256 64.5G 5 Extended
/dev/sdb3 138412032 161480703 23068672 11G 83 Linux
/dev/sdb4 161480704 167770111 6289408 3G 82 Linux swap / Solaris
/dev/sdb5 3149824 34605055 31455232 15G 83 Linux
/dev/sdb6 34607104 66062335 31455232 15G 83 Linux
/dev/sdb7 66064384 138412031 72347648 34.5G 83 Linux
Partition table entries are not in disk order.
b.下面對sda進行分區
root@zfy-PC:/home/zfy# fdisk /dev/sda
Welcome to fdisk (util-linux 2.33.1).
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.
Created a new DOS disklabel with disk identifier 0xb985e226.
Command (m for help): m
#輸入m查看幫助
Help:
DOS (MBR)
a toggle a bootable flag
b edit nested BSD disklabel
c toggle the dos compatibility flag
Generic
d delete a partition
F list free unpartitioned space
l list known partition types
n add a new partition
p print the partition table
t change a partition type
v verify the partition table
i print information about a partition
Misc
m print this menu
u change display/entry units
x extra functionality (experts only)
Script
I load disk layout from sfdisk script file
O mp disk layout to sfdisk script file
Save & Exit
w write table to disk and exit
q quit without saving changes
Create a new label
g create a new empty GPT partition table
G create a new empty SGI (IRIX) partition table
o create a new empty DOS partition table
s create a new empty Sun partition table
Command (m for help): n
#輸入n創建一個分區
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
#選擇主分區
Partition number (1-4, default 1): 1
#選擇編號為1
First sector (2048-4194303, default 2048): 2500000
#起始sector 設為2500000
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2500000-4194303, default 4194303): 4194303
#終止sector 設為4194303
Created a new partition 1 of type 'Linux' and of size 827.3 MiB.
#分區完成,分區大小為827.3 MiB
Command (m for help): n
#繼續創建一個分區
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): e
#新增擴展分區
Partition number (2-4, default 2): 2
#選擇編號為2
First sector (2048-4194303, default 2048): 2048
#起始sector為2048
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-2499999, default 2499999):
#終止sector為2499999
Created a new partition 2 of type 'Extended' and of size 1.2 GiB.
#新增完成,大小為1.2GiB
Command (m for help): w
#保存
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
c.查看分區後磁碟信息,此時sda磁碟已經有兩個分區
Disk /dev/sda: 2 GiB, 2147483648 bytes, 4194304 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb985e226
Device Boot Start End Sectors Size Id Type
/dev/sda1 2500000 4194303 1694304 827.3M 83 Linux
/dev/sda2 2048 2499999 2497952 1.2G 5 Extended
Partition table entries are not in disk order.
Disk /dev/sdb: 80 GiB, 85899345920 bytes, 167772160 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3b1ffeba
Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 2048 3147775 3145728 1.5G 83 Linux
/dev/sdb2 3147776 138412031 135264256 64.5G 5 Extended
/dev/sdb3 138412032 161480703 23068672 11G 83 Linux
/dev/sdb4 161480704 167770111 6289408 3G 82 Linux swap / Solaris
/dev/sdb5 3149824 34605055 31455232 15G 83 Linux
/dev/sdb6 34607104 66062335 31455232 15G 83 Linux
/dev/sdb7 66064384 138412031 72347648 34.5G 83 Linux
Partition table entries are not in disk order.
d.用ext3的文件系統對分區進行格式化
root@zfy-PC:/home/zfy# mkfs -t ext3 /dev/sda1
mke2fs 1.44.5 (15-Dec-2018)
Creating filesystem with 211788 4k blocks and 52976 inodes
Filesystem UUID: db384338-4af1-4eec-a62d-f2b2f8e0ec96
Superblock backups stored on blocks:
32768, 98304, 163840
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
e.新建一個分區目錄 /data,並掛載
root@zfy-PC:/home/zfy# mkdir data
root@zfy-PC:/home/zfy# mount /dev/sda1 /data
root@zfy-PC:/home/zfy# df -TH /data/#查看是否掛載成功
文件系統 類型 容量 已用 可用 已用% 掛載點
/dev/sda1 ext3 838M 881k 793M 1% /data
f. 用vim打開 etc/fstab並假如 /dev/sda1/data ext3 defaults 0 0,這樣重啟後便不需要再掛載
參考文獻:
【1】 Linux mount命令 | 菜鳥教程 (runoob.com)
【2】 linux添加新磁碟和創建分區 - IT(小菜雞) - 博客園 (cnblogs.com)
㈢ Linux分區疑惑
第一小問沒看懂你的意思,第二小問:在linux中前面的2048個扇區,其中第0號扇區是存放MBR和主分區表從1號扇區開始到2047個扇區是存放GRUB引導記錄,這個空間是電腦啟動加電自檢等過程中會調用的
第一小問並不清楚ept是什麼,只不過我可以給你看一下我對磁碟進行分區完的情況(那個黑黑的圖)在第四個sdb4那裡是一個擴展分區,下面兩個是邏輯分區,在第一個邏輯分區的前面有2048個扇區,這2048個扇區里存的是什麼我暫時還沒弄清楚,只是猜測是不是跟主分區一樣存放著邏輯分區表或者是地址轉換表還是什麼。
擴展分區僅指定該分區的范圍,不佔實際分區空間。sdb5與sdb6為邏輯分區。
只是由擴展分區來指定邏輯分區
㈣ linux page 文件的扇區地址
這個要看具體是文件是在哪個分區(即通常我們所說的某某盤)以及分區是什麼文件系統。
如果是FAT(FAT12,FAT16,FAT32)文件系統的話,從根目錄出發找文件的目錄項,讀取出來後,分析具體的位可以得知文件的起始簇號,有公式可以將簇號轉換為扇區號的,還可以得到文件的大小等信息(在目錄項的描述中,是以位元組來做單位的)。而在fat表中則定義了文件的鏈表關系(一般來說,如果文件不是特別大的話,存放都是在連續空間的)。
如果是NTFS文件系統,就需要從MFT開始找了。
㈤ Linux一塊硬碟最多能分為幾個分區
分區完全取決於磁碟類型格式。
一、MBR磁碟類型
如果我們在Linux中使用MBR磁碟類型,使用MBR分區表的硬碟最多隻能劃分4個主分區磁碟,並且MBR最大僅支持2TB的硬碟,但擁有很好的兼容性,如果需要分區的硬碟容量超過2TB了,則需要使用GPT分區表類型,此分區表類型不受分區個數,硬碟大小的限制,最大支持18EB,且是一種新的硬碟分區標准。如下所示:
1)所有四個分區僅為主分區。
2)三個分區是主分區,其餘一個分區是擴展的。
如果我們考慮以上兩個步驟,那麼在擴展分區下,我們可以創建將近65536個新的邏輯分區並使用它們,但是這個邏輯分區有一定的局限性,它取決於OS到OS。
二、GPT分區類型
如果我們在Linux中使用GPT分區類型,則在Linux系統中最多可以創建128個分區,
㈥ Linux 磁碟分區詳解
Linux 系統中所有的硬體設備都是用文件的形式來表示和使用的,也就是說,如果你想使用某個硬體設備首先你就需要將其掛載到某個目錄下面,通過對這個目錄的操作來操作設備;如果不掛載,通過Linux系統中的圖形界面系統可以查看找到硬體設備,但命令行方式無法找到。
並不是根目錄下任何一個目錄都可以作為掛載點,由於掛載操作會使得原有目錄中文件被隱藏,因此根目錄以及系統原有目錄都不要作為掛載點,會造成系統異常甚至崩潰,掛載點最好是新建的空目錄
磁碟也是一樣的,磁碟的文件是存放在 /dev 目錄下,磁碟設備文件的命名規則為:
常見的主設備號有:sd,hd;它們是代表的不同的磁碟類型: sd 代表的 IDE 硬碟, hd 代表的是 SCSI 硬碟
次設備號就是同一類型設備的次序,用 [a-z] 來表示, /dev/sda 表示第一塊 IDE 類型的磁碟, /dev/sdb 表示第二塊 IDE 類型的磁碟
磁碟分區編號,每一塊磁碟都會被劃分為多個磁碟分區(這個下面會介紹),每一個分區都會有一個編號,比如: /dev/sda1 表示這是該磁碟的第一個分區,以此類推
在 Linux 中,每一個硬碟設備都只能劃分四個主分區;若是劃分了一個擴展分區那最多可以劃分三個主分區;可以表示為:
主分區加擴展分區最多隻有四個;可以全部劃分為主分區,也可以之劃分一個主分區;但是擴展分區最多隻有一個;擴展分區是不能直接使用的,還有進一步劃分為邏輯分區才能使用;一個擴展分區可以劃分為多個邏輯分區;
主分區的分區編號是:1,2,3,4;從擴展分區劃分出來的邏輯分區的編號是從 5 開始,以次累加
這跟系統啟動有關系;當你啟動電腦時,首先就會載入 BIOS 信息,這裡麵包含了 Cpu 和其他硬體設備的信息;找到它計算機就知道怎麼啟動了
接下來,它會去找 MBR(Master Boot Record) ,也就是主引導記錄;為了方便 BIOS 的查找,所以就會把它放在磁碟上第0磁軌上的第一個扇區中,磁碟中每個扇區有 512 位元組;雖然只有這么大一點,但是要存三部分信息:
磁碟分區表總共只有 64 位元組,而每個分區信息占 16 個位元組,所以就只能有四個主分區了
這應該是歷史遺留的問題了,一開始只有四個分區,後來發現四個分區不夠用,就引入了擴展分區,而擴展分區是不能直接使用的,它必須再劃分為邏輯分區,邏輯分區的數量可以是任意多個。
對用戶而言,主分區和邏輯分區使用起來沒有任何的區別,同時還能夠達到無限分區的目的
我想很多人都思考過這個問題,我再了解了之後才發現磁碟分區還是有很多的好處的。具體例子:
現在給你一個倉庫,你打算存放快遞,一開始你一股腦的把所有的快遞直接放進去,等到別人來取快遞的時候你就發愁了,幾十甚至上百個快遞得找到啥時候啊
所以你打算開始分區管理,因為你代理了中通,圓通,百世等好幾個快遞,所以你打算按照不同的快遞分為三個貨架;
過一段時間發現同一種快遞如果量大的時候還是會混亂;因此你又想了個辦法就是按照日期給快遞編號,然後按照不同的日期將貨架分為多層,每一層存放某一天的快遞,同時你又找了個表記錄了每個分區快遞存放的位置,這大大增加了存取的效率
磁碟分區的目的,
Linux 常見目錄:
一般要是新手,可以只建立兩個分區:
這種分區方式比較簡單,如果只是測試可以用這種;要是想當成一個常用的系統,就需要更細一點劃分了,常用的分區方案如下(假如有磁碟有100G):
㈦ Linux查看壞扇區數量的命令是哪個
步驟:1 使用fdisk命令識別硬碟信息
# sudo fdisk -l
步驟:2 掃描硬碟的損壞扇區或區塊
# sudo badblocks -v /dev/sdb > /tmp/bad-blocks.txt
只需將「/dev/sdb」替換為自己機器的硬碟/分區。執行完成上述命令後,一個名為「bad-blocks」文本文檔將會在/tmp下創建,它將包含所有的損壞區塊。
㈧ linux怎麼讓分區對齊物理扇區邊界不清除磁碟內容
現代操作系統使用LBA而不是CHS來記錄硬碟分區.如果用扇區代替柱面,我們將看到:
sfdisk -uS -l /dev/sda
fdisk –l 命令是按照柱面來進行分區顯示的,所以需要按照垂直的空間進行理解,但現在的計算機在顯示時仍然會按照扇區來理解(因為現在磁碟是使用LBA(使用扇區進行定址)取代以前的CHS(柱面、磁頭、扇區)方式記錄硬碟分區的),所以會判斷分區沒有在柱面結束;如果我們使用命令 sudo fdisk –uS -l ,這個命令的意思是:「give size in sectors instead of sylinders」即是按照扇區的來進行分區顯示,這樣就可以看到以扇區方式顯示分區的了。可以看到相鄰邏輯分區之間都有 64 扇區的空間,那裡存放邏輯分區表。
㈨ Linux磁碟組成與分區
先說明一下磁碟的物理組成,整顆磁碟的組成主要有:
圓形的碟片(主要記錄數據的部分);
機械手臂,與在機械手臂上的磁頭(可讀寫碟片上的數據);
主軸馬達,可以轉動碟片,讓機械手臂的磁頭在碟片上讀寫數據。
從上面我們知道數據儲存與讀取的重點在於碟片,而碟片上的物理組成則為:
扇區(Sector)為最小的物理儲存單位,且依據磁碟設計的不同,目前主要有 512Bytes
與 4K 兩種格式;
將扇區組成一個圓,那就是柱面(Cylinder);
早期的分區主要以柱面為最小分區單位,現在的分區通常使用扇區為最小分區單位(每
個扇區都有其號碼喔,就好像座位一樣);
磁碟分區表主要有兩種格式,一種是限制較多的 MBR 分區表,一種是較新且限制較少的
GPT 分區表。
MBR 分區表中,第一個扇區最重要,裡面有:(1)主要開機區(Master boot record,
MBR)及分區表(partition table), 其中 MBR 佔有 446 Bytes,而 partition table 則占
有 64 Bytes。
GPT 分區表除了分區數量擴充較多之外,支持的磁碟容量也可以超過 2TB。
至於磁碟的文件名部份,基本上,所有實體磁碟的文件名都已經被模擬成 /dev/sd[a-p] 的格
式,第一顆磁碟文件名為 /dev/sda。 而分區的文件名若以第一顆磁碟為例,則為 /dev/sda[1-
128] 。除了實體磁碟之外,虛擬機的磁碟通常為 /dev/vd[a-p] 的格式。 若有使用到軟體磁碟
陣列的話,那還有 /dev/md[0-128] 的磁碟文件名。使用的是 LVM 時,文件名則為
/dev/VGNAME/LVNAME 等格式。
㈩ linux stat 命令顯示的 block 是扇區嗎
不是,是邏輯塊
扇區: 是硬碟片上的最小存儲單位,一個扇區一般是512位元組
邏輯塊(block): 分區進行格式化時所指定的「最小存儲單位」。即文件系統存儲的最小單位;EXT3 文件系統中的塊規格有 1024 Bytes, 2048 Bytes 和4096 Bytes 三種,它並不直接等於扇區的大小