Memory management 刻录到闪存的特定扇区

Memory management 刻录到闪存的特定扇区,memory-management,filesystems,linux-kernel,kernel,bootloader,Memory Management,Filesystems,Linux Kernel,Kernel,Bootloader,是否有任何实用程序可以精确指定图像将被刻录到哪个扇区区域 我需要根据特定的扇区图烧掉SD卡 e、 g.引导加载程序应位于从扇区57到扇区1072的512K区域(包括该区域) 内核应位于从1073扇区到9264扇区(包括1073扇区和9264扇区)的4M区域内 等等扇区大小= SECTOR_SIZE=<sector size in bytes> FLASH_DEV=/dev/sd?? sudo dd if=boot.bin of=$FLASH_DEV bs=$SECTOR_SIZE c

是否有任何实用程序可以精确指定图像将被刻录到哪个扇区区域

我需要根据特定的扇区图烧掉SD卡

e、 g.引导加载程序应位于从扇区57到扇区1072的512K区域(包括该区域)
内核应位于从1073扇区到9264扇区(包括1073扇区和9264扇区)的4M区域内

等等

扇区大小=
SECTOR_SIZE=<sector size in bytes>
FLASH_DEV=/dev/sd??
sudo dd if=boot.bin of=$FLASH_DEV bs=$SECTOR_SIZE count=$((1072-57)) seek=57
sudo dd if=kernel   of=$FLASH_DEV bs=$SECTOR_SIZE count=$((9264-1073)) seek=1073
FLASH_DEV=/DEV/sd?? sudo dd if=boot.bin of=$FLASH\u DEV bs=$SECTOR\u SIZE count=$((1072-57))seek=57 sudo dd if=kernel of=$FLASH\u DEV bs=$SECTOR\u SIZE count=$((9264-1073))seek=1073

只需
man 1 dd
,您必须在之前在/dev/sd*中确定闪存驱动器的名称。

您可以使用dd实用程序并使用“seek”选项指定扇区偏移量

谢谢您的回复,但是,您知道,我的sd卡是作为两个ext4分区安装的,/dev/mmcblk0p1和/dev/mmcblk0p2。前者实际上位于34038-563517扇区,包含android系统文件。后者位于563518-2666309扇区,包含android数据文件。SD卡的其他扇区是不可见的。我如何访问它们?@mangusta是否有general/dev/mmcblk0?如果是,就使用它,如果不是,我会尝试研究为什么只有这两个分区是可见的。啊,实际上有/dev/mmcblk0:),但我不能挂载它,因为它没有关联的文件系统。我是否必须挂载它才能使用dd?@mangusta否,您必须在执行“dd”时卸载/dev/mmcblk0,否则您会干扰内核文件系统驱动程序,这可能会导致不可预知的结果。@mangusta:实际上,您不必挂载它才能使用
dd
,因为dd是块驱动程序级别的传输,在一种介质上同时进行块级传输和文件系统级传输会导致灾难。