国产亚洲欧美日韩一区图片 ,夜夜夜高潮夜夜爽夜夜爰爰,国产精品好好热av在线观看 ,国产自愉自愉免费精品七区,1区2区3区4区产品不卡码网站,午夜影视啪啪免费体验区入口,在线播放免费播放av片,欧美 偷窥 清纯 综合图区
立即咨詢
2024.09.27 |
硬盤分區顯示不一致:奇怪Bug引發的思考與試錯
今天我們要聊的是我遇到的一個奇怪的bug。

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

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

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


一、故障描述


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


# 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.查看分區表


# 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


三、試錯與分析


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


# 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


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


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



1.查看扇區


圖片


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


圖片


然而,不幸的是,再次分區表丟失。


# 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:


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


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



四、故障分析


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


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



圖片

圖片


五、故障模擬


為了驗證這一假設,我模擬了在GPT環境下擴展分區的情況,果然復現了相同的故障。


模擬故障在gpt環境下拉大sda分區,可以復現故障。
##擴容sda之前##


圖片


##擴容sda之后##


圖片


六、故障原因


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


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



圖片

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



</pre&gt


相關推薦
助力IT企業信創服務,和企業一起走向成功
立即領取企業福利 預約您的專屬顧問
400-688-6069
主站蜘蛛池模板: 欧美日韩在线第一页免费观看| 在线亚洲中文精品第1页| 国内精品国内精品自线一二三区| 日本爽快片100色毛片| 国产重口老太和小伙乱| 18禁区美女免费观看网站| 亚洲精品岛国片在线观看| 国产黑色丝袜在线观看下| 性色av一二三天美传媒| 日韩人妻无码制服丝袜视频| 热99re久久国免费超精品首页| 中日产幕无线码一区| 亚洲国产一二三精品无码| 国产成人高清亚洲明星一区| 强迫大乳人妻中文字幕| 成人无码av网站在线观看| 久久久av波多野一区二区| 天天做天天爱夜夜爽毛片l| 国产偷国产偷高清精品| 精品国产三级a∨在线观看| 爽爽午夜影视窝窝看片| 色窝窝无码一区二区三区色欲 | 欧美日韩在线第一页免费观看 | 久久av老司机精品网站导航| 日韩欧美一区二区三区永久免费| 亚洲春色av无码专区最| 九九久re8在线精品视频| 亚洲成av人片天堂网站| 女被男啪到哭的视频网站| 男女久久久国产一区二区三区| 欧美日韩国产专区一区二区| 亚洲中文字幕无码天然素人在线| 中文字幕久久波多野结衣av| 国产精品欧美久久久久无广告| 久久天天躁夜夜躁狠狠躁综合| 国产精品国产三级国产剧情| 国产精品美女乱子伦高潮| 国产人成无码视频在线1000| 爱色精品视频一区二区| 丰满人妻被黑人中出849| 成年永久一区二区三区免费视频|