Ubuntu 15.10으로 업데이트했지만 큰 문제가 발생했습니다. sfdisk가 더 이상 작동하지 않습니다.
임베디드 Linux용 SD 카드에 파티션을 구축하려면 sfdisk가 꼭 필요하지만 옵션이 변경된 것 같습니다.
내 스크립트는 다음과 같습니다.
CARD_DEV=$1
unset LANG
umount ${CARD_DEV}* >& /dev/null
if [ -b "$CARD_DEV" ] ; then
echo "*************** Formatting SD card... ***************"
dd if=/dev/zero of=$CARD_DEV bs=1024 count=1024
SIZE=`fdisk -l $CARD_DEV | grep Disk | awk '{print $5}'`
echo DISK SIZE - $SIZE bytes
CYLINDERS=`echo $SIZE/255/63/512 | bc`
echo CYLINDERS - $CYLINDERS
{
echo 1,9,0x0C,*
echo 10,,,-
} | sfdisk -D -H 255 -S 63 -C $CYLINDERS $CARD_DEV
mkfs.vfat -F 32 -n "boot" ${CARD_DEV}1
mke2fs -j -L "filesystem" ${CARD_DEV}2
fi
출력 오류는 다음과 같습니다.
sfdisk: invalid option -- 'D'
sfdisk [options] <dev> [[-N] <part>]
sfdisk [options] <command>
Display or manipulate a disk partition table.
Commands:
-A, --activate <dev> [<part> ...] list or set bootable MBR partitions
-d, --dump <dev> dump partition table (usable for later input)
-g, --show-geometry [<dev> ...] list geometry of all or specified devices
-l, --list [<dev> ...] list partitions of each device
-s, --show-size [<dev> ...] list sizes of all or specified devices
-T, --list-types print the recognized types (see -X)
-V, --verify test whether partitions seem correct
--part-label <dev> <part> [<str>] print or change partition label
--part-type <dev> <part> [<type>] print or change partition type
--part-uuid <dev> <part> [<uuid>] print or change partition uuid
--part-attrs <dev> <part> [<str>] print or change partition attributes
<dev> device (usually disk) path
<part> partition number
<type> partition type, GUID for GPT, hex for MBR
Options:
-a, --append append partitions to existing partition table
-b, --backup backup partition table sectors (see -O)
--bytes print SIZE in bytes rather than in human readable format
-f, --force disable all consistency checking
--color[=<when>] colorize output (auto, always or never)
colors disabled by default
-N, --partno <num> specify partition number
-n, --no-act do everything except write to device
--no-reread do not check whether the device is in use
-O, --backup-file <path> override default backup file name
-o, --output <list> output columns
-q, --quiet suppress extra info messages
-X, --label <name> specify label type (dos, gpt, ...)
-Y, --label-nested <name> specify nested label type (dos, bsd)
-L, --Linux deprecated, only for backward compatibility
-u, --unit S deprecated, only sector unit is supported
-h, --help display this help and exit
-v, --version output version information and exit
Available columns (for -o):
gpt: Device Start End Sectors Size Type Type-UUID Attrs Name UUID
dos: Device Start End Sectors Cylinders Size Type Id Attrs Boot End-C/H/S
Start-C/H/S
bsd: Slice Start End Sectors Cylinders Size Type Bsize Cpg Fsize
sgi: Device Start End Sectors Cylinders Size Type Id Attrs
sun: Device Start End Sectors Cylinders Size Type Id Flags
For more details see sfdisk(8).
버전:
sfdisk from util-linux 2.26.2
답변1
이것은 이전 버전과 새 sfdisk 버전 모두에서 작동하는 명령의 작동 버전인 것 같습니다.
# p1 74MB FAT
# p2 Remainder Linux
sfdisk -u S -L $CARD_DEV << EOF
63,144522,0x0C,*
160650,,,-
EOF
"-u S"는 새 버전에서는 기본이지만 이전 버전에서는 설정해야 하는 섹터로 단위를 설정합니다.
"-L"은 파티션을 생성할 때 이전 버전에서 오류가 발생하지 않도록 합니다.