文件系统 制作 挂载
lsblk
列出 块设备 block device
设备文件 /dev/sda1
mkfs -t ext4 /dev/sda1
挂载 / 卸载
mount -t ext4 /dev/sda1 /mnt
umount /mnt
普通文件
dd -if=/dev/zero -of=some/img/name -bs=512 -count=1024
#size = bs*count
mkfs -t <type> some/img/name
挂载 / 卸载
mount -t <type> some/img/name /mnt
umount /mnt
type
光盘 -t iso9660 #loop-back 设备
fat -t vfat # fat8 fat16 fat32 ..
samba -t cifs # common interface #sudo apt install cifs-utils
ntfs -t ntfs-3g # new technology #sudo apt install ntfs-3g
extN -t extN #N= 3, 4
exfat -t exfat #sudo apt install exfat-fuse
loop设备
查看占用 losetup -a
dd –> 制作iso9660文件系统
genisomiage -iso-level 4 -R \
-o abcd.iso src_dir
# -iso-level iso版本号? 越大支持的功能越多 ; 比如 文件名保持大小写, 低版本会转成大写
# -R 扩展
# 注: 文件内文件名不要太长
# -o 输出文件名
文件转化为块设备:
losetup /dev/loop0 /var/loop.img
查看 块设备
lsblk |grep loop0
losetup -a
uEFI bootable iso 文件
mbr 启动 ? 待定 下文为 uEFI启动
img_name="xxx.img"
#loop0~loop7
loop_name="/dev/loop"
mnt_name="mnt_here"
img_size=10
### 选择一个 未占用的 loop back 设备
for ((i=0;i<8;i++))
do
if [ `losetup -a | grep "$loop_name$i" | wc -l` -eq 0 ]
then
loop_name="$loop_name$i"
break
else if [ $i -eq 7 ]
then
echo "[err] no loop device is avilable "
exit 1
fi
fi
###### 制作 uEFI需要的 FAT分区 {
#10MB
dd if=/dev/zero of=$img_name bs=1M count=$img_size
# 注册块设备
losetup $loop_name $img_name
#-n volume-name
mkfs -t fat -n grubboot $loop_name
if ! [ -e "$mnt_name" ]
then
mkdir -p $mnt_name
fi
mount -t fat $loop_name $mnt_name
#file copy
cp -r espfile/* $mnt_name
#umount & detach
umount $mnt_name
losetup -d $loop_name
################### }
#ESP镜像文件:
#xxx.img
#上面 这个 img可以不用自己做, linux发行版中/boot目录下自带
####################
## 注: `\` 后面不要有空格!!
genisoimage \
-iso-level 4 \
-R \
-o outname.iso\
-b $img_name \
-no-emul-boot \
-c boot.cat \
-V ISOname \
iso_src_dir
# -b boot 开机img文件
# -c 开机文件名称, boot信息
# -V 光盘id
# -R 某些扩展,额外的功能,字符等.
## MBR启动 需要在 `-o outname.iso\` 加入以下代码
## 注: 需要`isolinux/isolinux.bin` 文件,
### 同时 需要 `isolinux/{isolinux.cfg,vesamenu.32c}` 文件. 参照Linux发行版iso文件
### vesamenu.32c : used for displaying a menu.
-b isolinux/isolinux.bin \
-no-emul-boot -boot-load-size 4 \
-boot-info-table \
-eltorito-alt-boot \
#