๐Ÿ“‚๋„คํŠธ์›Œํฌ&์„œ๋ฒ„/๐Ÿง๋ฆฌ๋ˆ…์Šค(Linux)

[KDT:K-digital training ๊ณผ์ •] ๋ฆฌ๋ˆ…์Šค 3์ผ์ฐจ - MBR(Master Boot Record) ๋ฐฑ์—… ์‹ค์Šต

๐Ÿ‘ฉ‍๐ŸŽ“์ธํ…”๋ฆฌ๊ฐ์ž๐Ÿฅ” 2023. 8. 7. 20:55

MBR ๋ฐฑ์—… ์‹ค์Šต

MBR

 
 
๋ถ€ํŒ…์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” GRUB2๋Š” ๋ณดํ†ต ํŒŒํ‹ฐ์…˜์˜ ์ฒ˜์Œ 512 byte์— ์žˆ๋Š” 1st track & 1st sector์— ์„ค์น˜๋˜๋Š”๋ฐ ์ด๊ณณ์„ MBR์ด๋ผ๊ณ  ํ•œ๋‹ค.
์ด๋Š” HDD์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ indexing(์ƒ‰์ธ) ์—ญํ• ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— FAT(File Allocation Table)๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
 
MBR์„ ๋ฐฑ์—…ํ•ด๋‘๋ฉด ์‹œ์Šคํ…œ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ๋•Œ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
 
๋ณดํ†ต ๋ธ”๋ก(์ €์žฅ)์žฅ์น˜ ๋ฐฑ์—…์€ dd(disk duplicate) ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ž‘์—…ํ•˜๋Š”๋ฐ MBR ๋ฐฑ์—…์—๋„ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.
fdisk -l /dev/sda ์‹์œผ๋กœ HDD๋ฅผ ๋ณด์•˜์„ ๋•Œ *(asterisk)๊ฐ€ ๋ถ™์–ด ์žˆ๋Š” ๊ณณ์ด booting ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ณณ์ด๋‹ค.
 
๋ณดํ†ต ์šฉ๋Ÿ‰์€ 512byte ์ •๋„์ด๋‹ค.
MBR ๋ฐฑ์—…์— dd ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ž‘์—…ํ•œ๋‹ค.

fdisk

fdisk๋Š” ๋ฆฌ๋ˆ…์Šค์—์„œ ๋””์Šคํฌ ํŒŒํ‹ฐ์…˜ ํ…Œ์ด๋ธ”์„ ๋ณด๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ น์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ์ด๋‹ค.
์ด ๋„๊ตฌ๋Š” ์ƒˆ๋กœ์šด ํŒŒํ‹ฐ์…˜์„ ๋งŒ๋“ค๊ฑฐ๋‚˜, ๊ธฐ์กด ํŒŒํ‹ฐ์…˜์„ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜, ํŒŒํ‹ฐ์…˜์˜ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.
 
 
 
์–ด๋Š ๋ช…๋ น์–ด์— ๋Œ€ํ•œ ์‚ฌ์šฉ๋ฒ•์€ man fdisk OR fdisk —help ์‹์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
man fdisk ์‹์œผ๋กœ ํŒŒ์ผ์„ ์—ด๋ฉด vi๋ผ๋Š” ํŽธ์ง‘๊ธฐ๋กœ ํŒŒ์ผ์ด ์—ด๋ฆฌ๋Š”๋ฐ :q ํ•˜๋ฉด ๋‹ซํžŒ๋‹ค.
 

blkid

์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์ด ์ธ์‹ํ•œ ์žฅ์น˜์˜ ๊ณ ์œ ๋ฒˆํ˜ธ(UUID), ํŒŒ์ผ ์‹œ์Šคํ…œ ํƒ€์ž…์„ ๋ณด์—ฌ์ค€๋‹ค.
 
blkid: ์ด ๋ช…๋ น์–ด๋Š” ๋ธ”๋ก ์žฅ์น˜์˜ ์†์„ฑ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ์ •๋ณด์—๋Š” UUID (Universally Unique Identifier), ํŒŒ์ผ ์‹œ์Šคํ…œ ํƒ€์ž… (์˜ˆ: ext4, NTFS ๋“ฑ), ๋ ˆ์ด๋ธ” ๋“ฑ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ •๋ณด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ fstab ํŒŒ์ผ์ด๋‚˜ ์‹œ์Šคํ…œ ๋ถ€ํŒ… ์Šคํฌ๋ฆฝํŠธ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
 
 
 

lsblk

์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋ธ”๋ก ์žฅ์น˜๋ฅผ ๋‚˜์—ดํ•˜๊ณ , ๊ฐ ์žฅ์น˜์˜ ํฌ๊ธฐ, ๋งˆ์šดํŠธ ์ง€์ , ์žฅ์น˜ ์ด๋ฆ„ ๋“ฑ์„ ๋ณด์—ฌ์ค€๋‹ค.
 
lsblk: ์ด ๋ช…๋ น์–ด๋Š” ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋ธ”๋ก ์žฅ์น˜๋ฅผ ๋‚˜์—ดํ•˜๋ฉฐ, ๊ฐ ์žฅ์น˜์˜ ํฌ๊ธฐ, ๋งˆ์šดํŠธ ์ง€์ , ์žฅ์น˜ ์ด๋ฆ„ ๋“ฑ์„ ํฌํ•จํ•œ ์ •๋ณด๋ฅผ ํ‘œ ํ˜•์‹์œผ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. lsblk๋Š” ๊ณ„์ธต์  ํ‘œํ˜„์„ ์ œ๊ณตํ•˜์—ฌ, ๊ฐ ์žฅ์น˜๊ฐ€ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”์ง€ ์‹œ๊ฐ์ ์œผ๋กœ ํŒŒ์•…ํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.
 
 
 

dd๋กœ MBR ๋ฐฑ์—…

dd ๋ช…๋ น์–ด๋Š” ๋ธ”๋ก์žฅ์น˜๋ฅผ ์ž…์ถœ๋ ฅํ•˜๊ณ  ๋ฐฑ์—…ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.
dd if(inputinterface)=~ of(outputinterface)=~ count=n(๋ณต์‚ฌ ํšŸ์ˆ˜) bs=512k(๋ณต์‚ฌ ํฌ๊ธฐ) ; sync
JavaScript
๋ณต์‚ฌ
dd if=/dev/sda1 of=/tmp/sda1.mbr count=1 bs=512K ; sync
โ€‹
/tmp ํด๋”์— ๋ธ”๋ก์žฅ์น˜ ๋ฐฑ์—…์„ ์ถœ๋ ฅํ–ˆ์œผ๋‹ˆ ls /tmp๋กœ ํ™•์ธํ•œ๋‹ค.
 
 
์–ด๋Š ํŒŒ์ผ์— ~.lst, ~.com, ~.exe ์‹์œผ๋กœ ํŒŒ์ผ_๋ช… ๋’ค์— ๋ถ™์€ ๊ฒƒ์„ ํ™•์žฅ์ž๋ผ๊ณ  ํ•˜๋Š”๋ฐ Windows์—์„œ๋Š” .com, .exe, .bat๊ฐ€ ์‹คํ–‰ํŒŒ์ผ์ด๊ณ , Linux์—์„œ๋Š” binary๊ฐ€ ์‹คํ–‰ํŒŒ์ผ์ด๋‹ค.
Windows์—์„œ๋Š” ์ฃผ๋กœ 3์ž๋ฆฌ๊นŒ์ง€๋งŒ ์‚ฌ์šฉํ•˜๊ณ , linux์—์„œ๋Š” ๊ธธ๊ฒŒ(256์ž๋ฆฌ) ํ•ด๋„ ๋œ๋‹ค.
 

MBR ์‚ญ์ œ

JavaScript
๋ณต์‚ฌ
dd if=/dev/zero of=/dev/sda1 count=1 bs=512K
โ€‹
/dev/zero๋Š” ๋ธ”๋Ÿญ์žฅ์น˜ (HDD, USB, DVD, SDcard)์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ 0,1๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”๋ฐ ์ด๋ฅผ ๋ชจ๋‘ 0์œผ๋กœ ๋งŒ๋“ค๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ๋˜๋Š” ์…ˆ์ด ๋œ๋‹ค. ← format๋„ ์ด๋Ÿฐ ๊ธฐ๋Šฅ์ด๋‹ค.(์ „๊ธฐ์  ์ถฉ๊ฒฉ)
 
DVD๋Š” land์™€ pit๊ฐ€ ์žˆ๋‹ค. ์—ฌ๊ธฐ์— laser/LED ๋น›์„ ์œ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋˜๋Š” ์ด์œ ๋Š” ์‚ฌ์ธ๊ณผ ๊ฐ™์€ ํŒŒํ˜•์„ ๊ทธ๋ฆฌ๊ณ  ์žˆ๋‹ค.
 
 
๋žœ๋“œ์™€ ํ”ผํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  1011011001์„ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค. 8๊ฐœ์”ฉ 1 byte์”ฉ=8bit ์”ฉ ์ „์†ก์ด ๋œ๋‹ค.
์—ฌ๊ธฐ์— ์ „๊ธฐ์  ์ถฉ๊ฒฉ์„ ์ฃผ๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค.
/dev/zero๋‚˜ /dev/null
0์œผ๋กœ ์ง‘์–ด๋„ฃ์–ด์„œ ์ถœ๋ ฅ์„ ์ฃผ๋ฉด ์‚ญ์ œ๋œ๋‹ค.
 

MBR ๋ณต์›

JavaScript
๋ณต์‚ฌ
dd if=/tmp/sda1.mbr of=/dev/sda1
โ€‹
 

๋ถ€ํŒ…๊ณผ ํŒŒํ‹ฐ์…˜ ๋ฐฑ์—…

๋ณดํ†ต์€ dd์™€ sfdisk๋ฅผ ์‚ฌ์šฉํ•ด์„œ MBR๊ณผ ํŒŒํ‹ฐ์…˜์„ ํ•จ๊ป˜ ๋ฐฑ์—…ํ•ด๋‘๊ณ  ํ•„์š”ํ•˜๋ฉด ๋ณต์›ํ•œ๋‹ค.
 
๋ถ€ํŒ… ๋ถ€๋ถ„ ๋ฐฑ์—…์€ dd if=/dev/sda of=/tmp/sda.bak count=1 bs=512K ํ•ด์ฃผ๊ณ ,
 
ํŒŒํ‹ฐ์…˜ ๋ฐฑ์—…์€ sfdisk -d /dev/sda > /tmp/sda.part ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
ํŒŒํ‹ฐ์…˜ ๋ณต์Šต: HDD๋ฅผ partition(๋ถ„ํ• )ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
์ด ํŒŒํ‹ฐ์…˜(์„ค์ •)์„ ๋ฐฑ์—…ํ•  ์ˆ˜ ์žˆ๋‹ค.
 
๋ถ€ํŒ… ๋ถ€๋ถ„ ๋ฐฑ์—…: dd
JavaScript
๋ณต์‚ฌ
dd if=/dev/sda1 of=/tmp/sda1.mbr count=1 bs=512K ; sync
โ€‹
ํŒŒํ‹ฐ์…˜ ๋ฐฑ์—…: sfdisk
JavaScript
๋ณต์‚ฌ
sfdisk -d /dev/sda > /tmp/sda.part
โ€‹
 

parted

parted /dev/sda print
ํŒŒํ‹ฐ์…˜ ๋ณผ๋ฅจ ๋ฒˆํ˜ธ ๋ณผ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
 
 
 

sfdisk

sfdisk๋Š” fdisk์™€ ๊ฐ™์€ ์œ ํ˜•์˜ ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋กœ, ๋””์Šคํฌ ํŒŒํ‹ฐ์…˜ ํ…Œ์ด๋ธ”์„ ๋ณด๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
sfdisk์˜ ์ฃผ์š” ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:
ํŒŒํ‹ฐ์…˜ ํ…Œ์ด๋ธ”์˜ ๋ฐฑ์—… ๋ฐ ๋ณต์›: sfdisk๋Š” ๋””์Šคํฌ์˜ ํŒŒํ‹ฐ์…˜ ํ…Œ์ด๋ธ”์„ ํŒŒ์ผ๋กœ ๋ฐฑ์—…ํ•˜๊ณ , ํ•„์š”ํ•œ ๊ฒฝ์šฐ์— ์ด๋ฅผ ๋ณต์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ์‹œ์Šคํ…œ ๋ณต๊ตฌ ์ž‘์—…์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
JavaScript
๋ณต์‚ฌ
sfdisk -d /dev/sda > /tmp/sda.part
โ€‹
๊ฒฐ๊ณผ๋ฅผ ์˜ค๋ฅธ์ชฝ์— ์ €์žฅ(>: redirect๊ฐ€ ๊ทธ ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค.)