Burg Configuration Guide (Quick and Dirty)

หลังจากที่ลง Ubuntu 10.10 มาแล้ว ก็อ่าน Review ที่ Blognone และปรับเปลี่ยนตามที่เขาแนะนำกันหลาย ๆ อย่าง จนสุดท้ายติดตั้ง BURG ซึ่งผลที่ได้ก็เรียบร้อยสวยงามดี แอบมีติด ๆ ขัด ๆ บ้างเล็กน้อย

พอใช้จริงก็มีปัญหาเล็กน้อยคือ ข้อความแสดงชื่อ OS นั้นมันยาวไป ไม่เข้ากับบางธีมของ BURG (ผมใช้ Sora) เลยต้องกลับไปค้นเกี่ยวกับการแก้ไขการตั้งค่าของ GRUB ซึ่ง BURG ก็ใช้ไฟล์รูปแบบเดียวกัน สุดท้ายก็ได้ Boot loader สวย ๆ มาใช้สักที BURG with Sora Theme

  • ไปที่โฟลเดอร์ BURG โดยใช้ Terminal สั่ง cd /etc/burg.d
  • สำรองไฟล์ tar -cf backup.tar 00_header 10_linux 30_os-prober 40_custom
  • เปิดไฟล์ 10_linux ขึ้นมาด้วย gksu gedit 10_linux

ค้นหา code ส่วนนี้ (ประมาณบรรทัดที่ 30)

if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then OS=GNU/Linux OSLABEL=linux else OS="${GRUB_DISTRIBUTOR} GNU/Linux" OSLABEL="$(echo ${GRUB_DISTRIBUTOR} | tr '[A-Z]' '[a-z]' | cut -d' ' -f1)" fi

ตัดเอา GNU/Linux ออก เพื่อให้ข้อความสั้นลง

เปลี่ยน OS=GNU/Linux เป็น OS=""

เปลี่ยน OS="${GRUB_DISTRIBUTOR} GNU/Linux" เป็น OS="${GRUB_DISTRIBUTOR}"

ค้นหา code ส่วนนี้ (ประมาณบรรทัดที่ 58)

linux_entry () { os="$1" version="$2" recovery="$3" args="$4" if ${recovery} ; then title="$(gettext_quoted "%s, with Linux %s (recovery mode)")" auth_option=${AUTH_RESCUE} else title="$(gettext_quoted "%s, with Linux %s")" auth_option=${AUTH_NORMAL} fi

เปลี่ยน title="$(gettext_quoted "%s, with Linux %s (recovery mode)")" เป็น title="$(gettext_quoted "%s %s (Recovery)")" (ลดความยาวของคำลง)

เปลี่ยน title="$(gettext_quoted "%s, with Linux %s")" เป็น title="$(gettext_quoted "%s %s")" (เอา , with Linux ออกไป)

ค้นหา code ส่วนนี้ (ประมาณบรรทัดที่ 113)

while [ "x$list" != "x" ] ; do linux=`version_find_latest $list` echo "Found linux image: $linux" >&2 basename=`basename $linux` dirname=`dirname $linux` rel_dirname=`make_system_path_relative_to_its_root $dirname` version=`echo $basename | sed -e "s,^[^0-9]*-,,g"` alt_version=`echo $version | sed -e "s,\.old$,,g"` linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"

เพิ่ม 2 บรรทัดนี้ไว้ด้านล่างของ linux_root_device_thisversion="${LINUX_ROOT_DEVICE}" (ตัวแปร codename เก็บชื่อเล่นของ OS ส่วน version_no_generic คือให้ตัดคำ -generic หลังหมายเลขรุ่นออกไป)

codename="`lsb_release -cs`" version_no_generic="`echo ${version} | cut -d "-" -f 1-2`"

ค้นหา code ส่วนนี้ (ประมาณบรรทัดที่ 140)

linux_entry "${OS}" "${version}" false \ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" if [ "x${GRUB_DISABLE_LINUX_RECOVERY}" != "xtrue" ]; then linux_entry "${OS}" "${version}" true \ "single ${GRUB_CMDLINE_LINUX}" fi

เปลี่ยน ${version} เป็น ${version_no_generic} ซึ่งมีอยู่ 2 ที่ เพื่อเอา -generic ออก แต่พอดีผมไม่ได้ใช้ codename ถ้าจะเอา codename แทนดิสโทรก็ เปลี่ยน ${OS}] เป็น ${codename}

บันทึกไฟล์ 10_linux เป็นการจบการแก้ไขการตั้งค่าที่เกี่ยวกับลินุกซ์ดิสโทร

เปิดไฟล์ 30_os-proper ขึ้นมา

ค้นหา code ส่วนนี้ (ประมาณบรรทัดที่ 124 -- ของ Windows ส่วน OS ตัวอื่นผมไม่มีบนเครื่อง เลยไม่รู้จะลองเล่นยังไง)

echo "Found ${LONGNAME} on ${DEVICE}" >&2 case ${BOOT} in chain)

เพิ่ม code นี้ไว้บน code ด้านบน โดยเปลี่ยนคำว่า Windows 7 (loader) ตามชื่อ OS ของคุณตามที่ปรากฏอยู่ใน boot loader และเปลี่ยน Windows 7 เป็นชื่ออะไรก็ได้ตามต้องการ

if [ "${LONGNAME}" = "Windows 7 (loader)" ] ; then LONGNAME="Windows 7" fi

ค้นหา code ส่วนนี้ (ประมาณบรรทัดที่ 130)

menuentry "${LONGNAME} (on ${DEVICE})" --class ${OSLABEL} --class os ${AUTH_NORMAL}{

ตัด (on ${DEVICE}) ออกไป (ไม่ต้องการรู้ว่าอยู่บนพาร์ทิชั่นไหน) จะได้เป็น

menuentry "${LONGNAME}" --class ${OSLABEL} --class os ${AUTH_NORMAL}{

บันทึกไฟล์ 30_os-proper

ถ้าต้องการให้ Windows อยู่เป็นตัวแรก (ด้วยเหตุผลอะไรก็แล้วแต่) ก็เปลี่ยนไฟล์ 30_os-proper เป็น 03_os-proper ก็ได้ เพราะทั้ง GRUB และ BURG จะเรียกไฟล์ไปตามลำดับตัวเลขนั่นเอง

ปรับปรุงไฟล์ปรับแต่งใหม่โดยสั่ง sudo update-burg

ทดลองรันโดยการเรียก burg-emu หากลงเอาไว้ หากไม่ได้ลงก็ติดตั้งเข้ามาเลย หรือจะดูตอนทำงานจริงก็ตามแต่

ข้อมูลเพิ่มเติมอื่น ๆ

Add new comment

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
By submitting this form, you accept the Mollom privacy policy.