久草视频在线这里只有精品-妻子浪漫第二季完整在线观看免费-中文有码国产精品欧美激情-中文字幕日本高清一区二区三

立即咨詢
2024.09.27 |
硬盤分區(qū)顯示不一致:奇怪Bug引發(fā)的思考與試錯
今天我們要聊的是我遇到的一個奇怪的bug。

那天下午,陽光透過辦公室的窗戶灑在桌面上,我剛剛處理完一個棘手的bug,正享受著一杯茶的寧靜時光。然而,這份寧靜很快被一陣急促的電話鈴聲打破。

“我們在做虛擬機磁盤擴容,遇到一個奇怪的問題,你能幫忙看看嗎?”電話那頭的聲音透著焦急。

我調(diào)整了一下狀態(tài),心中略顯興奮。回復道:“別擔心,我馬上來?!?/p>


一、故障描述


在使用不同的磁盤分區(qū)工具(如`fdisk`和`parted`)時,發(fā)現(xiàn)它們顯示的分區(qū)類型不一致。這種情況看似微小,但實際上可能引發(fā)一系列嚴重問題,影響數(shù)據(jù)安全和系統(tǒng)穩(wěn)定性。


# fdisk  -l /dev/sda
Disk /dev/sda: 64.4 GB, 64424509440 bytes, 125829120 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x00000000
  Device Boot      Start         End      Blocks   Id  System/dev/sda1               1   104857599    52428799+  ee  GPT# parted  -s /dev/sda unit s printModel: VMware Virtual disk (scsi)Disk /dev/sda: 125829120sSector size (logical/physical): 512B/512BPartition Table: gptDisk Flags:
Number  Start     End         Size        File system  Name                  Flags 1      2048s     411647s     409600s     fat16        EFI System Partition  boot 2      411648s   2508799s    2097152s    xfs 3      2508800s  104855551s  102346752s



二、初步排查


為了進一步了解問題,首先檢查了`fdisk`的版本。版本信息顯示,`fdisk`來自`util-linux 2.23.2`。


1.查看fdisk軟件版本

# which fdisk
/usr/sbin/fdisk
# rpm -qf /usr/sbin/fdisk
util-linux-2.23.2-59.el7.x86_64


2.查看版本


# fdisk -v
fdisk from util-linux 2.23.2


3.查看分區(qū)表


# fdisk -lu /dev/sda
Disk /dev/sda: 64.4 GB, 64424509440 bytes, 125829120 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: 0x00000000
 Device Boot Start End Blocks Id System
 /dev/sda1 1 104857599 52428799+ ee GPT
 # fdisk -lu /dev/sda
 Disk /dev/sda: 64.4 GB, 64424509440 bytes, 125829120 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: dosDisk identifier: 0x00000000 
 Device Boot Start End Blocks Id System
 /dev/sda1 1 104857599 52428799+ ee GPT
 # parted -s /dev/sda unit s print
 Model: VMware Virtual disk (scsi)
 Disk /dev/sda: 125829120s
 Sector size (logical/physical): 512B/512B
 Partition Table: gpt
 Disk Flags:
 Number Start End Size File system Name Flags
  1 2048s 411647s 409600s fat16 EFI System Partition boot 
  2 411648s 2508799s 2097152s xfs 
  3 2508800s 104855551s 102346752s lvm


三、試錯與分析


在初步排查中,發(fā)現(xiàn)`fdisk`的版本較舊(`util-linux 2.23.2`)。通常情況下,較新的工具版本會修復舊版本中的一些已知問題。因此,首先想到的是通過升級`util-linux`來解決問題,期望新版本能夠正確處理分區(qū)顯示問題。


# rpm -Uvh util-linux-2.23.2-65.el7_9.1.x86_64.rpm --force --nodeps
warning: util-linux-2.23.2-65.el7_9.1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing... ################################# [100%]
Updating / installing...
 1:util-linux-2.23.2-65.el7_9.1 ################################# [ 50%]
 Cleaning up / removing...
  2:util-linux-2.23.2-59.el7 ################################# [100%]


但是很遺憾,升級后`fdisk`的顯示仍然異常。


# fdisk -l
Disk /dev/sda: 64.4 GB, 64424509440 bytes, 125829120 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: dosDisk identifier: 0x00000000 
Device Boot Start End Blocks Id System
/dev/sda1 1 104857599 52428799+ ee GPT


此時,我開始懷疑分區(qū)表本身可能存在問題。


為了進一步驗證這一假設(shè),決定備份MBR扇區(qū),并清空MBR,期望通過重新構(gòu)建分區(qū)表來解決問題。



1.查看扇區(qū)


圖片


2.備份mbr


dd if=/dev/sda of=sda_mbr.data bs=512 count=1


3.清空mbr


dd if=/dev/zero of=/dev/sda bs=512 count=1

# dd if=/dev/zero of=/dev/sda bs=512 count=1

1+0 records in

1+0 records out

512 bytes (512 B) copied, 0.000450755 s, 1.1 MB/s


圖片


然而,不幸的是,再次分區(qū)表丟失。


# fdisk -l /dev/sda
Disk /dev/sda: 64.4 GB, 64424509440 bytes, 125829120 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
# parted /dev/sda print
Error: /dev/sda: unrecognised disk label
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 64.4GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:


這個也讓我意識到,問題的根源可能比想象中的要復雜。


文章到這里,大家不妨停一下,思考一下。如果是你,接下來你打算分幾步來分析,又需要哪些信息來幫助你找到問題的原因,并且如何解決呢… ...
(思考時間)



四、故障分析


如果你已經(jīng)有了答案,不妨一起來看看我的分析。


在試錯過程中,發(fā)現(xiàn)`fdisk`和`parted`顯示的分區(qū)信息不一致。`fdisk`顯示的分區(qū)類型與預期不符,而`parted`則顯示正常。這引起了的注意,開始懷疑是否是分區(qū)表本身的問題。
進一步分析發(fā)現(xiàn),磁盤在之前被擴展到60GB。GPT分區(qū)表包括主分區(qū)表和備份分區(qū)表,正常情況下,主分區(qū)表位于硬盤的LBA1~LBA33,而備份分區(qū)表位于硬盤的最后位置。如果磁盤大小被調(diào)整后,備份分區(qū)表沒有正確更新,就會導致`fdisk`顯示異常。



圖片

圖片


五、故障模擬


為了驗證這一假設(shè),我模擬了在GPT環(huán)境下擴展分區(qū)的情況,果然復現(xiàn)了相同的故障。


模擬故障在gpt環(huán)境下拉大sda分區(qū),可以復現(xiàn)故障。
##擴容sda之前##


圖片


##擴容sda之后##


圖片


六、故障原因


至此,故障原因也就很清晰了。在創(chuàng)建GUID分區(qū)表(GPT)時,系統(tǒng)會同時創(chuàng)建一個MBR(msdos)分區(qū)表,其中包含一個覆蓋整個磁盤或高達2TB的0xEE(GPT)分區(qū),稱為MBR保護分區(qū)。這個分區(qū)用于提醒舊命令和實用程序磁盤確實已分區(qū)。


GPT分區(qū)表包括主分區(qū)表和備份分區(qū)表。正常情況下,主分區(qū)表位于硬盤的LBA1~LBA33,而備份分區(qū)表位于硬盤的最后位置。如果磁盤大小被調(diào)整后,備份分區(qū)表沒有正確更新,就會導致`fdisk`顯示異常。



圖片

正常gpt分區(qū) 通過hexdump查看,200是主分區(qū)開始,033ffe00 是secondary (backup) 分區(qū)。



</pre&gt


相關(guān)推薦
助力IT企業(yè)信創(chuàng)服務,和企業(yè)一起走向成功
立即領(lǐng)取企業(yè)福利 預約您的專屬顧問
400-1037-370
激情内射日本一区二区三区| 成人三级视频在线观看不卡| 中文字幕中文字幕在线十八区| 国产性色精品福利在线观看| 欧美日韩中黄片免费看| 亚洲中文在线男人的天堂| 色婷婷中文字幕在线视频| 国产女性精品一区二区三区| 一区二区福利在线视频| 日本精品视频一二三区| 婷婷基地五月激情五月| 亚洲精品欧美精品日韩精品| 在线欧美精品二区三区| 成人午夜在线视频观看| 自拍偷拍一区二区三区| 亚洲黄香蕉视频免费看| 欧美成人免费夜夜黄啪啪| 亚洲av成人一区二区三区在线| 精品人妻一区二区三区在线看| 少妇激情在线免费观看| 国产专区亚洲专区久久| 国产爆操白丝美女在线观看| 亚洲欧美国产中文色妇| 丝袜破了有美女肉体免费观看| 欧美国产在线观看精品| 国产肥女老熟女激情视频一区| 中文字幕日韩欧美亚洲午夜| 98精品永久免费视频| 色哟哟国产精品免费视频| 空之色水之色在线播放| 亚洲欧美一二区日韩高清在线| 日本深夜福利在线播放| 婷婷亚洲综合五月天麻豆| 国产精品成人又粗又长又爽| 日韩精品中文字幕亚洲| 亚洲欧美国产精品一区二区| av中文字幕一区二区三区在线 | 欧美一区二区三区性视频| 欧美大胆美女a级视频| 91福利视频日本免费看看| 国产免费无遮挡精品视频|