আমি এআইএফ (আর্চ ইনস্টলেশন ফ্রেমওয়ার্ক) ব্যবহার করে একটি কাস্টম স্বয়ংক্রিয় ইনস্টল লিখছি এবং আমার একটি পার্টিশন দেওয়া পার্টিশনে ফাইল সিস্টেম খুঁজে পেতে হবে।
এখনও পর্যন্ত আমার কাছে এটি রয়েছে:
grok_partitions () {
local partitions=
for label in `ls /dev/disk/by-label | grep "Arch"`
do
if [ $label == "Arch" ]
then
mount_point="/"
else
IFS="-" read base mount <<< "${label}"
mount_point="/${mount}"
fi
local partition=$(readlink -f /dev/disk/by-label/${label})
local part_no=$(echo ${partition} | grep -Po '\d+')
local fs=$(parted -mls | grep "^${part_no}" | cut -d: -f5)
partitions+="${partition} raw ${label} ${fs};yes;${mount_point};target;no_opts;${label};no_params\n"
done
# do the swap
if [ -e /dev/disk/by-label/swap ]
then
local partition=$(readlink -f /dev/disk/by-label/swap)
partitions+="$partition raw swap swap;yes;no_mountpoint;target;no_opts;swap;no_params"
else
# if there's no labeled swap, use the first one we find
local partition=$(fdisk -l | grep -m1 swap | awk '{ print $1 }')
if [ ! -e $partition ]
then
echo "No swap detected. Giving up."
exit 1
fi
partitions+="$partition raw no_label swap;yes;no_mountpoint;target;no_opts;no_label;no_params"
fi
echo -n ${partitions}
}
এটি কেবলমাত্র একটি হার্ড ড্রাইভ সহ আমার মেশিনে দুর্দান্ত কাজ করেছে, তবে এটি লাইভসিডি-তে চালিত আমার ভিএম-তে চালিত হওয়ার পরে (স্পষ্টতই) ব্যর্থ হয়েছিল (লাইভসিডিটি অন্য ড্রাইভ, / ডিভ / এসআর0 হিসাবে নেওয়া হয়েছিল)।
আমি চেষ্টা করেছি যে কয়েকটি হ্যাক সম্পর্কে চিন্তা করেছি:
mount $partition; grep $partition /etc/mtab | awk ...
- ব্যবহারের
parted -mls
হলেও পার্টিশনটি আমি চালাক স্ক্রিপ্টিং সঙ্গে যত্নশীল বৈঠাচালনা আউট, তারপর পার্স হিসাবে আমি ইতিমধ্যে scriptt না
এটি করার আরও ভাল, সহজ উপায় কি আছে? আমার আগ্রহী পার্টিশনগুলি আমার কাছে ইতিমধ্যে রয়েছে এবং আমার কেবল তাদের ফাইল সিস্টেমগুলি অনুসন্ধান করতে হবে (পাশাপাশি উপলভ্য অদলবদলও সন্ধান করতে হবে)।