是否可以在一行中使用fdisk命令在usb磁盘中创建分区.
fdisk命令本质上是交互式的,但我想使用fdisk命令在一行中自动创建分区.
解决方法
尝试自动化fdisk是可能的,但它不容易维护.正如其他答案所指出的那样,parted或
sfdisk设计用于执行您想要的操作并且更易于自动化.
分手
要使用parted在一行中创建分区:
parted -a optimal /dev/usb mkpart primary 0% 4096MB
如在this UNIX SE post中所见.每个部分都是不言自明的,但以下是mkpart的定义:
mkpart [part-type fs-type name] start end
方括号中的东西是可选的,但你可能想要部分类型的主要内容,从0%开始到4096MB结束或者你的USB棒大.
了sfdisk
sfdisk的输入可能比fdisk的输入更容易理解,但它是用于自动化.
#!/bin/sh # Example Usage: create_sd /dev/sdb DRIVE=$1 dd if=/dev/zero of=$DRIVE bs=1024 count=1024 SIZE=`fdisk -l $DRIVE | grep Disk | awk '{print $5}'` echo DISK SIZE - $SIZE bytes CYLINDERS=`echo $SIZE/255/63/512 | bc` echo CYLINDERS - $CYLINDERS { echo,9,0x0C,* echo,- } | sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVE mkfs.vfat -F 32 -n "boot" ${DRIVE}1 mke2fs -j -L "rootfs" ${DRIVE}2
来自The Linux Daily,虽然不适合一行请求,但确实显示了如何完成.