Telegram Group & Telegram Channel
πŸ‘£ Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° диска: парсим MBR ΠΈ GPT Π½Π° Go

ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ тСхничСский Π³Π°ΠΉΠ΄ β€” ΠΊΠ°ΠΊ Π½Π° языкС Go Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ свой инструмСнт для Π°Π½Π°Π»ΠΈΠ·Π° Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² диска (Π°Π½Π°Π»ΠΎΠ³ `fdisk -l`), работая Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с «сырыми» Π±Π°ΠΉΡ‚Π°ΠΌΠΈ.

πŸ“Œ Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°:
β€’ Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 512 Π±Π°ΠΉΡ‚ с диска (MBR)
β€’ ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Ρ‚ΠΈΠΏ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²: MBR ΠΈΠ»ΠΈ GPT
β€’ ΠŸΠ°Ρ€ΡΠΈΡ‚ Π½ΡƒΠΆΠ½Ρ‹Π΅ структуры (MBRPartition, GPTHeader ΠΈ Π΄Ρ€.)
β€’ Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅: смСщСниС, Ρ€Π°Π·ΠΌΠ΅Ρ€, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, Ρ‚ΠΈΠΏ, имя (для GPT)

πŸ”§ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π΄Π²Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°:
1. MBR (Master Boot Record)
β€’ Π”ΠΎ 4 основных Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ β€” 2 Π’Π‘
β€’ Π’Π°Π±Π»ΠΈΡ†Π° находится Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ сСкторС (512 Π±Π°ΠΉΡ‚)
β€’ КаТдая запись β€” 16 Π±Π°ΠΉΡ‚, с полями CHS, LBA, Ρ‚ΠΈΠΏΠΎΠΌ ΠΈ Ρ„Π»Π°Π³Π°ΠΌΠΈ
β€’ Π’ ΠΊΠΎΠ½Ρ†Π΅ сигнатура 0x55AA

2. GPT (GUID Partition Table)
β€’ Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ стандарт с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ >2 Π’Π‘
β€’ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ GUID-ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄ΠΎ 128 Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ основной ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ + Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² Π² UTF‑16

πŸ“– ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° Π² Go:
β€’ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ описаны Ρ‡Π΅Ρ€Π΅Π· struct с Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ полями
β€’ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ binary.Read для чтСния Π±Π»ΠΎΠΊΠΎΠ²
β€’ Π•ΡΡ‚ΡŒ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ²

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ всСх Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, смСщСниС ΠΈ, ΠΏΡ€ΠΈ GPT, имя Ρ€Π°Π·Π΄Π΅Π»Π°.

πŸ’‘ ΠŸΠΎΡ‡Π΅ΠΌΡƒ это ΠΏΠΎΠ»Π΅Π·Π½ΠΎ:
β€’ ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ устроСна Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° дисков
β€’ Π£Ρ‡ΠΈΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈ ΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ ΠΈΡ… Π² Go
β€’ ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для систСмного программирования, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, диагностики ΠΈ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ

πŸ§ͺ Автор Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ:
β€’ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° CRC
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… ΠΈ логичСских Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ Π§Ρ‚Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм
β€’ РСализация Π² WebAssembly для запуска Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅

πŸ“Ž Π§ΠΈΡ‚Π°Ρ‚ΡŒ
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/golang_books/996
Create:
Last Update:

πŸ‘£ Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° диска: парсим MBR ΠΈ GPT Π½Π° Go

ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ тСхничСский Π³Π°ΠΉΠ΄ β€” ΠΊΠ°ΠΊ Π½Π° языкС Go Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ свой инструмСнт для Π°Π½Π°Π»ΠΈΠ·Π° Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² диска (Π°Π½Π°Π»ΠΎΠ³ `fdisk -l`), работая Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с «сырыми» Π±Π°ΠΉΡ‚Π°ΠΌΠΈ.

πŸ“Œ Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°:
β€’ Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 512 Π±Π°ΠΉΡ‚ с диска (MBR)
β€’ ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Ρ‚ΠΈΠΏ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²: MBR ΠΈΠ»ΠΈ GPT
β€’ ΠŸΠ°Ρ€ΡΠΈΡ‚ Π½ΡƒΠΆΠ½Ρ‹Π΅ структуры (MBRPartition, GPTHeader ΠΈ Π΄Ρ€.)
β€’ Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅: смСщСниС, Ρ€Π°Π·ΠΌΠ΅Ρ€, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, Ρ‚ΠΈΠΏ, имя (для GPT)

πŸ”§ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π΄Π²Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°:
1. MBR (Master Boot Record)
β€’ Π”ΠΎ 4 основных Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ β€” 2 Π’Π‘
β€’ Π’Π°Π±Π»ΠΈΡ†Π° находится Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ сСкторС (512 Π±Π°ΠΉΡ‚)
β€’ КаТдая запись β€” 16 Π±Π°ΠΉΡ‚, с полями CHS, LBA, Ρ‚ΠΈΠΏΠΎΠΌ ΠΈ Ρ„Π»Π°Π³Π°ΠΌΠΈ
β€’ Π’ ΠΊΠΎΠ½Ρ†Π΅ сигнатура 0x55AA

2. GPT (GUID Partition Table)
β€’ Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ стандарт с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ >2 Π’Π‘
β€’ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ GUID-ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄ΠΎ 128 Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ основной ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ + Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² Π² UTF‑16

πŸ“– ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° Π² Go:
β€’ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ описаны Ρ‡Π΅Ρ€Π΅Π· struct с Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ полями
β€’ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ binary.Read для чтСния Π±Π»ΠΎΠΊΠΎΠ²
β€’ Π•ΡΡ‚ΡŒ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ²

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ всСх Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, смСщСниС ΠΈ, ΠΏΡ€ΠΈ GPT, имя Ρ€Π°Π·Π΄Π΅Π»Π°.

πŸ’‘ ΠŸΠΎΡ‡Π΅ΠΌΡƒ это ΠΏΠΎΠ»Π΅Π·Π½ΠΎ:
β€’ ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ устроСна Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° дисков
β€’ Π£Ρ‡ΠΈΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈ ΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ ΠΈΡ… Π² Go
β€’ ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для систСмного программирования, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, диагностики ΠΈ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ

πŸ§ͺ Автор Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ:
β€’ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° CRC
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… ΠΈ логичСских Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ Π§Ρ‚Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм
β€’ РСализация Π² WebAssembly для запуска Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅

πŸ“Ž Π§ΠΈΡ‚Π°Ρ‚ΡŒ

BY Golang Books




Share with your friend now:
tg-me.com/golang_books/996

View MORE
Open in Telegram


Golang Books Telegram | DID YOU KNOW?

Date: |

A Telegram spokesman declined to comment on the bond issue or the amount of the debt the company has due. The spokesman said Telegram’s equipment and bandwidth costs are growing because it has consistently posted more than 40% year-to-year growth in users.

The STAR Market, as is implied by the name, is heavily geared toward smaller innovative tech companies, in particular those engaged in strategically important fields, such as biopharmaceuticals, 5G technology, semiconductors, and new energy. The STAR Market currently has 340 listed securities. The STAR Market is seen as important for China’s high-tech and emerging industries, providing a space for smaller companies to raise capital in China. This is especially significant for technology companies that may be viewed with suspicion on overseas stock exchanges.

Golang Books from id


Telegram Golang Books
FROM USA