parted를 사용하여 파티션 유형을 올바르게 설정할 수 없습니다.

parted를 사용하여 파티션 유형을 올바르게 설정할 수 없습니다.

Centos 6.5에서 BIOS를 업데이트하기 위해 FreeDos를 사용하여 부팅 가능한 USB 스틱을 만들려고 합니다. 다음 지침을 따르십시오.httobe.com

다음 명령을 사용하여 빈 30MB img 파일을 만들었습니다 dd.

[root@dumbledore freedos_boot]# dd if=/dev/zero of=FreeDos-image.img bs=1M 
count=30
30+0 records in
30+0 records out
31457280 bytes (31 MB) copied, 0.0756911 s, 416 MB/s

위 기사의 작성자는 이 명령이 30MB를 복사해야 한다고 말했는데, 저는 31MB를 얻었습니다. 이것이 문제입니까?

그런 다음 이를 사용하여 parted생성된 FreeDos-image.img 파일에 파티션을 만들었습니다.

root@dumbledore freedos_boot]# parted FreeDos-image.img 
GNU Parted 2.1
Using /home/dthacker/freedos_boot/FreeDos-image.img
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit %
(parted) mklabel msdos                                                     
(parted) mkpart primary fat16 0 100%
Warning: The resulting partition is not properly aligned for best performance. 
Ignore/Cancel? C                                                          
(parted) mkpart primary fat32 0 100%
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? I                                                          
(parted) set 1 boot on                                                    
(parted) p                                                                  
Model:  (file)
Disk /home/dthacker/freedos_boot/FreeDos-image.img: 100%
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start  End   Size  Type     File system  Flags
1      0.00%  100%  100%  primary               boot, lba                                                                                                               

파일 시스템 유형은 FAT16이어야 하는데 아직 설정되지 않았습니다.

올바르게 설정하려면 어떻게 해야 합니까?

답변1

저는 chtaube.eu에서 이 지침의 작성자입니다. :)

dd는 크기와 관련하여 약간 일관성이 없습니다. bs=1M블록 크기를 1로 정의하십시오.테라바이트1024*1024바이트를 나타냅니다. 30MB는 30*1024*1024 = 31457280바이트입니다. dd최종 출력은 10진수 메가바이트(1MB = 1000*1000바이트)입니다. 그래서 31MB가 표시됩니다. 따라서 걱정할 것이 없습니다. 저는 "32MB"라고 광고하는 USB 플래시 드라이브에 들어갈 수 있도록 보수적으로 32MB보다 약간 작은 크기를 선택했습니다.


방금 Arch Linux와 Debian에서 이 문제를 확인했고 parted문제를 재현할 수 있었습니다.

나에게 이것은 parted(print) 명령의 출력이 p"빈" 파일 시스템을 표시하는 반면 파티션은 실제로 FAT16으로 올바르게 생성되므로 외관상의 문제처럼 보입니다.

fdisk -l FreeDos-image.img아래의 TypeScript에서 했던 것처럼 이를 확인할 수 있습니다.

ct@darkstar ~/tmp % dd if=/dev/zero of=Freedos.img bs=1M count=30
30+0 records in
30+0 records out
31457280 bytes (31 MB) copied, 0.150141 s, 210 MB/s
ct@darkstar ~/tmp % parted Freedos.img 
WARNING: You are not superuser.  Watch out for permissions.
GNU Parted 3.1
Using /home/ct/tmp/Freedos.img
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit %                                                           
(parted) mklabel msdos                                                    
(parted) mkpart primary fat16 0 100%                                      
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? i                                                          
(parted) set 1 boot on                                                    
(parted) p                                                                
Model:  (file)
Disk /home/ct/tmp/Freedos.img: 100%
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start  End   Size  Type     File system  Flags
 1      0.00%  100%  100%  primary               boot, lba

(parted) q                                                                
ct@darkstar ~/tmp % fdisk -l Freedos.img 

Disk Freedos.img: 30 MiB, 31457280 bytes, 61440 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
Disklabel type: dos
Disk identifier: 0x0007cae1

Device       Boot Start       End Blocks  Id System
Freedos.img1 *        1     61439  30719+  e W95 FAT16 (LBA)

ct@darkstar ~/tmp % 

따라서 귀하에게는 문제가 없을 것입니다. 어쨌든, 이것을 지적해 주셔서 감사합니다. 해당 동작을 더 자세히 조사 parted하고 이에 따라 내 페이지의 매뉴얼을 업데이트하겠습니다.

관련 정보