मैं एम्बेडेड सिस्टम के लिए बूट करने योग्य USB डिस्क बनाने के लिए Ubuntu 14.04.5 LTS पर निम्नलिखित बैश स्क्रिप्ट का उपयोग कर रहा हूं, जिसमें काम किया गया है:
# Partition disk.
/usr/bin/sudo /bin/umount /dev/sdc1 /dev/sdc2
/usr/bin/sudo /sbin/parted -s -- /dev/sdc mklabel msdos
/usr/bin/sudo /sbin/parted -s -- /dev/sdc mkpart primary 2048s 5244928s
/usr/bin/sudo /sbin/parted -s -- /dev/sdc set 1 boot on
/usr/bin/sudo /sbin/parted -s -- /dev/sdc mkpart primary 5246976s -977920s
/usr/bin/sudo /sbin/parted -s -- /dev/sdc quit
/usr/bin/sudo /sbin/partprobe /dev/sdc
/usr/bin/sudo /bin/umount /dev/sdc1 /dev/sdc2
/usr/bin/sudo /sbin/mkfs.ext4 -L rootfs /dev/sdc1
/usr/bin/sudo /sbin/mkfs.ext4 -L var /dev/sdc2
/usr/bin/sudo /sbin/partprobe /dev/sdc
/bin/sync
# Copy filesystem.
/usr/bin/udisksctl mount -b /dev/sdc1
/usr/bin/sudo /bin/cp -a ${ROOTFS_DIR}/. ${ROOTFS_MOUNTPOINT}
/usr/bin/udisksctl mount -b /dev/sdc2
/usr/bin/sudo /bin/cp -a ${VAR_DIR}/. ${VAR_MOUNTPOINT}
/bin/sync
# Upload bootloader.
/usr/bin/udisksctl mount -b /dev/sdc1
/usr/bin/sudo /usr/sbin/grub-install --no-floppy --directory=${ROOTFS_MOUNTPOINT}/usr/lib/grub/i386-pc --locale-directory=${ROOTFS_MOUNTPOINT}/usr/share/locale --boot-directory=${ROOTFS_MOUNTPOINT}/boot /dev/sdc
/bin/sync
/usr/bin/sudo /usr/bin/eject /dev/sdc
fdisk
उत्पन्न USB डिस्क के लिए आउटपुट है:
Disk /dev/sdc: 14.9 GiB, 16022241280 bytes, 31293440 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: 0x22953b4d
Device Boot Start End Sectors Size Id Type
/dev/sdc1 * 2048 5244928 5242881 2.5G 83 Linux
/dev/sdc2 5246976 30315520 25068545 12G 83 Linux
हाल ही में, मैंने उबंटू 18.04 पर स्विच किया, लेकिन अब, grub
लिनक्स कर्नेल और इनट्राम्राम्स को लोड करता है, हालांकि बाद में बूटिंग निम्न आउटपुट के साथ विफल हो जाती है, और यह आपातकालीन शेल में गिर जाता है:
mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
missing codepage or helper program, or other error
आपातकालीन खोल में, blkid
आदेश विभाजन के रूप में उम्मीद है, जिसमें UUIDs मिलान दिखाता है /boot/grub/grub.cfg
और /etc/fstab
:
/dev/sdb1: LABEL="rootfs" UUID="5556accb-3244-47d0-8042-aaad74dd3950" TYPE="ext4" PARTUUID="22953b4d-01"
/dev/sdb2: LABEL="var" UUID="6ee3b764-77dB-481d-9564-fbfabb590933" TYPE="ext4" PARTUUID="22953b4d-02"
चूँकि मैंने उबंटू 18.04 में पहले से ही कुछ अन्य समस्याओं का अनुभव किया है, जैसे कि अलग-अलग व्यवहार losetup
, के लिए अलग-अलग आउटपुट स्वरूप fdisk
, आदि। क्या मुझे स्क्रिप्ट में mkfs.ext4
या grub-install
कमांड के लिए और कमांड विकल्प प्रदान करने चाहिए ? grub-install
कमांड संस्करण के साथ उबंटू से है 2.02-2ubuntu8.13
, लेकिन इसके विकल्प एम्बेडेड फाइल सिस्टम से निर्देशिकाओं का उपयोग करते हैं जिसमें ग्रब है 2.02.beta2-4
, इसलिए, क्या इसके कारण कुछ विसंगतियां हो सकती हैं?