extract_initramfs.sh
#!/bin/bashINITRAMFS_DIR="initramfs_cpio_dir"#INITRAMFS_FILE="$(pwd)/x86_64_iso_rootfs/boot/initramfs-linux-fallback.img"INITRAMFS_FILE="/tmp/iso/boot/initramfs-linux-fallback.img"CPIO_FILE="initramfs.cpio.gz"if [ ! -d ${INITRAMFS_DIR} ] ; then mkdir -pv ${INITRAMFS_DIR}ficd ${INITRAMFS_DIR}if [ -e $CPIO_FILE ] ; then rm -f $CPIO_FILEficp -f $INITRAMFS_FILE $CPIO_FILEgzip -f -d $CPIO_FILEsudo cpio -idmv --no-absolute-filenames < ${CPIO_FILE/.gz}
fast_install_usb_disk.sh
#!/bin/bashformat_en="0"#dev_name="/dev/sdd"root_label="usb_root"mydisk_label="usb_mydisk"install_dir="/tmp/usb_linux_install"root_src_dir="/home/lvarchroot/quickinstall/install_dir_i686"START_SEC=$(date +%s)function die(){ echo -e "error: $@" sudo beep -r 3 exit 1}function usage(){ echo "$0 -d /dev/sdb" exit 0}# 檢測、配置輸入的命令while getopts 'd:fh' arg; do case "${arg}" in h) usage 0;; f) format_en="1" ;; d) dev_name="${OPTARG}" ; echo $dev_name ;; *) error "無效參數 '${arg}'"; usage 1 ;; esacdoneif [ -z $dev_name ] ; then echo "請設定目標裝置 -d /dev/sdX" usage exit 1fiif [ ${format_en} = "1" ] ; then dialog --defaultno --yesno "是否格式化 ${dev_name}1" 15 20 if [ $? -eq 0 ] ; then mkfs.ext4 ${dev_name}1 boot_flag=$(fdisk -l ${dev_name} | grep ${dev_name}1 | awk '{print $2}') if [ "x${boot_flag}" = "x*" ] ; then echo "已是引導狀態!!" else echo "不是引導狀態@@" fdisk ${dev_name} <<< EOF a 1 w EOF fi fi if [ -b ${dev_name}2 ] ; then dialog --defaultno --yesno "是否格式化 ${dev_name}2" 15 20 if [ $? -eq 0 ] ; then mkfs.ext4 ${dev_name}2 fi fifiif [ ! -b ${dev_name}1 ] ; then die "${dev_name}1 不是塊裝置"fiif [ ! -b ${dev_name}2 ] ; then die "${dev_name}2 不是塊裝置"fidialog --defaultno --yesno "是否使用${dev_name}做為安裝目標裝置" 15 20if [ $? -eq 1 ] ; then echo "退出安裝過程!!!" exit 1fi# target_part="${dev_name}1"# fstype=$(blkid -u filesystem -o value -s TYPE -p ${target_part})# if [ "x$fstype" != "xvfat" ] ; then# echo "${target_part} 不是合法的FAT分區"# fi## target_part="${dev_name}2"# fstype=$(blkid -u filesystem -o value -s TYPE -p ${target_part})# if [ "x$fstype" != "xext2" ] ; then# echo "${target_part} 不是合法的EXT2分區"# fifor i in $(seq 1 2) ; do target_part="${dev_name}$i" fstype=$(sudo blkid -u filesystem -o value -s TYPE -p ${target_part}) if [ "x$fstype" != "xext4" ] ; then die "${target_part} 不是合法的EXT4分區" fidoneif [ ! -d $install_dir ] ; then mkdir -pv $install_direlse echo " install dir = $install_dir "fiecho "開始掛載 ${dev_name}1 到 $install_dir "sudo mount ${dev_name}1 $install_dir || die "掛載失敗"echo "掛載完畢"#exit 1echo "開始製作標籤"sudo e2label ${dev_name}1 $root_label || die "set ${dev_name}1 $root_label"sudo e2label ${dev_name}2 $mydisk_label || die "set ${dev_name}2 $mydisk_label "echo "製作完畢"echo "開始時間 $(date +%H:%M:%S)"echo "開始拷貝系統, 所花時間比較長"sudo cp -af ${root_src_dir}/* ${install_dir} || die "安裝失敗"echo "拷貝完畢"echo "開始製作啟動grub"sudo grub-install --boot-directory=${install_dir}/boot --force ${dev_name} > /dev/null 2>&1 || \ die "設定grub ${dev_name} 出錯"echo "grub啟動製作完成!"for i in $(seq 1 2) ; do target_part="${dev_name}$i" sudo blkid ${target_part}donesudo umount ${dev_name}1 || die "卸載失敗"echo "結束時間 $(date +%H:%M:%S)"END_SEC=$(date +%s)TOTAL_SEC=$((${END_SEC} - $START_SEC))SEC=$((TOTAL_SEC%60))MIN=$((TOTAL_SEC/60))echo "花費 ${MIN} 分 ${SEC} 秒"echo "操作已完成"sudo beep
本文出自 “槍炮與玫瑰的BLOG” 部落格,請務必保留此出處http://axlrose.blog.51cto.com/434566/1300775