Решено: Не устанавливается Archbang

Модератор: Модераторы разделов

Аватара пользователя
Женя Подсыпальников
Сообщения: 482

Re: Решено: Не устанавливается Archbang

Сообщение Женя Подсыпальников »

Это поперёд abinstall такое ? :)
Пойдём на рыбалку !
Спасибо сказали:
Аватара пользователя
Женя Подсыпальников
Сообщения: 482

Re: Решено: Не устанавливается Archbang

Сообщение Женя Подсыпальников »

А каким образом Lubuntu пользует разделы,
предназначенные к установке на них ArchBang ? :)

Ещё вопрос, после первого:
дорога ли нам Lubuntu (какой-то ещё её раздел) на машине после установки ArchBang ?

Интересен также вывод mount на Lubunu, сразу после её погрузки :)
Пойдём на рыбалку !
Спасибо сказали:
Сергей12
Сообщения: 156

Re: Решено: Не устанавливается Archbang

Сообщение Сергей12 »

Вывод mount:

s@Lubuntu:~$ mount
/dev/sda1 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sda3 on /home type ext4 (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/s/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=s)
s@Lubuntu:~$

Система настроена, допилина. Внешний вид так как хотел. Хотя ещё и не не до конца.
Жалко её терять. :)
Спасибо сказали:
Аватара пользователя
Женя Подсыпальников
Сообщения: 482

Re: Решено: Не устанавливается Archbang

Сообщение Женя Подсыпальников »

Угу...

А вот это, опосля chroot и поперёд abinstall - что говорит ? :) :
# mount
# mke2fs -t ext4 /dev/sda5
Пойдём на рыбалку !
Спасибо сказали:
Сергей12
Сообщения: 156

Re: Решено: Не устанавливается Archbang

Сообщение Сергей12 »

Я же перезагрузился для того чтобы вывод mount для Lubuntu посмотреть.
С какого пункта начать?
Спасибо сказали:
Аватара пользователя
Женя Подсыпальников
Сообщения: 482

Re: Решено: Не устанавливается Archbang

Сообщение Женя Подсыпальников »

А я думал, это каждый раз происходит... Тада ясно :)

OK.
"Как обычно", доходим до chroot,
и сразу после него:

# mount
(контроллируем, что наши (не sda1, sda3) sdaX не заняты, стоп по занятости и отмонтаж их: umount /dev/sdaX - для каждого)

Потом abinstall.

/boot не размечайте, только / и /home
swap упорядочьте в Lubuntu-swap (sda2 ?), не соглашайтесь его форматировать .

Bootloader - не устанавливайте пока (конец установки).

Уже интересно :)
Пойдём на рыбалку !
Спасибо сказали:
Сергей12
Сообщения: 156

Re: Решено: Не устанавливается Archbang

Сообщение Сергей12 »

Вот что сделал:

sudo mount -o loop /squashfs-root/root-image.fs /arch

sudo mount -t proc none /arch/proc
sudo mount -t sysfs none /arch/sys
sudo mount -o bind /dev /arch/dev
sudo mount -o bind /dev /arch/dev

sudo chroot /arch bash

Затем:

[root@Lubuntu /]# mount
/squashfs-root/root-image.fs on / type ext4 (rw,relatime,user_xattr,barrier=1)
none on /proc type proc (rw,relatime)
none on /sys type sysfs (rw,relatime)
udev on /dev type devtmpfs (rw,relatime,size=234384k,nr_inodes=58596,mode=755)
udev on /dev type devtmpfs (rw,relatime,size=234384k,nr_inodes=58596,mode=755)
[root@Lubuntu /]#

И ещё:

[root@Lubuntu /]# mke2fs -t ext4 /dev/sda5
mke2fs 1.42.6 (21-Sep-2012)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
323840 inodes, 1294080 blocks
64704 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1325400064
40 block groups
32768 blocks per group, 32768 fragments per group
8096 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

[root@Lubuntu /]#

Сделал до того как прочитал ваш последний пост.
Продолжать установку?
Спасибо сказали:
Аватара пользователя
Женя Подсыпальников
Сообщения: 482

Re: Решено: Не устанавливается Archbang

Сообщение Женя Подсыпальников »

done - значит сделано :)

abinstall

В чёрном-чёрном экране - размечаем / и /home , /boot - не размечаем .

Для swap - выбираем swap Lubuntu (sda2 ?) , не форматируем его .

...
Пойдём на рыбалку !
Спасибо сказали:
Сергей12
Сообщения: 156

Re: Решено: Не устанавливается Archbang

Сообщение Сергей12 »

Как размечать в чёрном экране?
Удалить раздел, создать это понятно.
А точку монтирования, файловую систему это где?
Спасибо сказали:
Аватара пользователя
Женя Подсыпальников
Сообщения: 482

Re: Решено: Не устанавливается Archbang

Сообщение Женя Подсыпальников »

Это потом, уже после чёрного Quit, в окошках,
после упорядочивания swap (swap Lubuntu, не форматировать) :)
Пойдём на рыбалку !
Спасибо сказали:
Сергей12
Сообщения: 156

Re: Решено: Не устанавливается Archbang

Сообщение Сергей12 »

Вот мой чёрный экран.
Так до конца не понял как и что мне в нём нужно сделать.

Вот часть гугл-перевод хелпа.
Помощь экран для Cfdisk

Это Cfdisk, проклятия программа для разметки диска, который
позволяет создавать, удалять и изменять разделы на вашем жестком
диск.

Copyright © 1994-1999 Kevin Martin E. & АЕБ

Команда Значение

Уже готов согласиться.

Ну это шутка. Просто не умею пользоваться. :)
Вложения
2.png
Спасибо сказали:
Аватара пользователя
Женя Подсыпальников
Сообщения: 482

Re: Решено: Не устанавливается Archbang

Сообщение Женя Подсыпальников »

С sda5 по sda8 можно удалить.
Создать sda5 на 6GB (для /)
Создать sda6 на остаток (для /home)
Quit

Для swap (первое окошко после Quit) - sda4 , не форматировать
Для / - sda5 , форматировать
Для /home - sda6, форматировать

Получается ? :)
Пойдём на рыбалку !
Спасибо сказали:
Сергей12
Сообщения: 156

Re: Решено: Не устанавливается Archbang

Сообщение Сергей12 »

Удалил разделы. Нужно-же создать расширенный раздел, а на нём два логических.
Потому как у меня три основные уже есть. А их не должно быть более четырёх.

Может из Lubunt'ы в GParted это можно сделать?
Спасибо сказали:
Аватара пользователя
Женя Подсыпальников
Сообщения: 482

Re: Решено: Не устанавливается Archbang

Сообщение Женя Подсыпальников »

Можно для пробы создать только четвёртый, для /
(/home там будет встроен) :)

Quit

Для swap (первое окошко после Quit) - sda4 , не форматировать
Для / - sda5 , форматировать

DONE

Получается ? :)
Пойдём на рыбалку !
Спасибо сказали:
Сергей12
Сообщения: 156

Re: Решено: Не устанавливается Archbang

Сообщение Сергей12 »

Не получается. :(

После Quit DONE
И опять всё по кругу. То есть изменения не сохраняются.

// Для swap (первое окошко после Quit) - sda4 , не форматировать
// Для / - sda5 , форматировать

За Quit Tupe. Но где выбрать форматировать / не форматировать? Так и не понял. :(

А GParted нельзя подготовить?
Спасибо сказали:
Аватара пользователя
Женя Подсыпальников
Сообщения: 482

Re: Решено: Не устанавливается Archbang

Сообщение Женя Подсыпальников »

Нету круга:

после Quit -> DONE -> Enter -> Enter

Начало выбора swap :)
Пойдём на рыбалку !
Спасибо сказали:
Сергей12
Сообщения: 156

Re: Решено: Не устанавливается Archbang

Сообщение Сергей12 »

Удалил разделы.
Nev
[Primary]
Enter
Size (in MB): 14249.69
Enter

Unusable 1.05*
sda1 Primary ext4 10000.27*
sda4 Primary swap 760.22*
sda3 Primary ext4 35000.42*
sda2 Primary Linux 14249.69*

Quit
/dev/sda
Enter
Что-то на английском
Enter
И снова чёрный экран с не удалёнными разделами.
Спасибо сказали:
Аватара пользователя
Женя Подсыпальников
Сообщения: 482

Re: Решено: Не устанавливается Archbang

Сообщение Женя Подсыпальников »

после Quit -> DONE -> Enter -> Enter :)
Пойдём на рыбалку !
Спасибо сказали:
Сергей12
Сообщения: 156

Re: Решено: Не устанавливается Archbang

Сообщение Сергей12 »

Делаю так:
// После Quit -> DONE -> Enter -> Enter
Вот результат:
Вложения
3.png
Спасибо сказали:
Аватара пользователя
Женя Подсыпальников
Сообщения: 482

Re: Решено: Не устанавливается Archbang

Сообщение Женя Подсыпальников »

ОК, попробуйте в GParted, а потом сразу в DONE, в чёрное не треба :)
Пойдём на рыбалку !
Спасибо сказали:
Сергей12
Сообщения: 156

Re: Решено: Не устанавливается Archbang

Сообщение Сергей12 »

Женя, спасибо за помощь!
В GParted уже завтра. :)
Спасибо сказали:
Аватара пользователя
Женя Подсыпальников
Сообщения: 482

Re: Решено: Не устанавливается Archbang

Сообщение Женя Подсыпальников »

ОК :)

Не забудем проверить, перед новым запуском abinstall,
что новый раздел, после GParted, не значится в выводе mount .
Пойдём на рыбалку !
Спасибо сказали:
Сергей12
Сообщения: 156

Re: Решено: Не устанавливается Archbang

Сообщение Сергей12 »

В GParted создал расширенный раздел.
На нём два логических.
Проверил - не подключены.
Перезагрузился (на всякий случай)
Проверил созданные разделы - не подключены.
Выполнил:

sudo mount -o loop /squashfs-root/root-image.fs /arch
sudo mount -t proc none /arch/proc
sudo mount -t sysfs none /arch/sys
sudo mount -o bind /dev /arch/dev
sudo mount -o bind /dev /arch/dev
sudo chroot /arch bash
Путь /arch/mnt/install/bypass - существует.
abinstall

Далее. В точности выполнил предписанное.
DONE
swap - не форматировать.
root - ext4 - форматировать.

За тем:
На вопрос: "do you want to mount static partitions at bootup? (optional)"
выбираю /dev/sda6 (скриншот прилагается)
ext4
Вместо /boot пишу /home
Форматировать.
DONE

Далее. Таблица разделов. (скриншот прилагается)

И в конце снова это:
cp: cannot stat ' /mnt/install/bypass/* :No such file or directory

Перезагружусь попробую ещё раз.
Вложения
2.png
1.png
Спасибо сказали:
Сергей12
Сообщения: 156

Re: Решено: Не устанавливается Archbang

Сообщение Сергей12 »

Повторил ещё раз.
То-же самое.
добавлю ещё пару скриншотов, какие успел сделать.
Вложения
2.png
1.png
Спасибо сказали:
Аватара пользователя
Женя Подсыпальников
Сообщения: 482

Re: Решено: Не устанавливается Archbang

Сообщение Женя Подсыпальников »

Самая последняя картинка
возвещает, вообще-то, об удаче... :)

После какого ОК во втором случае появляется запись:
cp: cannot stat ' /mnt/install/bypass/* :No such file or directory
и где, пожалуйста ?

По скрипту инсталляции -
это после ОК на последней картинке, верно ? :)

Были ли видны какие-то сообщения/эффекты кроме этого ?

---
О ! Нашёл, кажется !!! :)
Они там (в скрипте) всё ещё на диск инсталляции ссылаются ! :)

Ща я его попробую подправить и подвесить сюда.

Вы его потом, поперёд chroot,
с Lubuntu - в корень переходу (/arch ?) копируйте
и его запускайте, а скрипт abinstall не готов для нашего метода, оказывается...

Записываем, как abi.sh и устанавливаем как исполняемый (мои изменения отмечены через #####):

Код: Выделить всё

#!/bin/bash

## Check if running as sudo/root ##
if [ $EUID != 0 ] ; then
  echo "Must sudo or be root.  Terminating..." >&2
  exit 1
fi

# some variables that might be modified by options

VER="1.68 | 26-10-2012 | allow syslinux to use btrfs"
SI_BYPASS=0
SC_BYPASS=0
EDITOR="nano"
DESTDIR=/mnt/install
SRC_LANG="/src/lang"
[[ -f ${SRC_LANG}/abinstall_msg.en ]] || SRC_LANG="./src/lang"

# help for options
options_usage() {
echo
echo "usage: `basename $0` [ -h -i -c -v ] [ -d <destdir> ] [ -e <editor> ]"
echo
echo "  -h | --help             What options are available in this script"
echo "  -d | --destdir         Installation directory (defaults to /mnt/install)"
echo "  -e | --editor         Which editor to use - must be preinstalled (defaults to nano)"
echo "  -i | --system_installed    Bypass the 'installation' section of the installer"
echo "  -c | --system_configured Bypass the 'configuration' section of the installer"
echo "  -v | --version     Display current abinstall version"
echo
echo "Options -i and -c are useful if you've already installed and want to test a change to the installer"
echo
}

# Get the options and possibly overwrite the variables set at the top
# Add -v version using $VER
#-v|--VER) <do stuff>; ;; possibly echo $VER then exit ???
TMPGETOPT=$(getopt -o cvd:e:hi --long system_configured,version,destdir:,editor:,help,system_installed -n $0 -- "$@")

if [ $? != 0 ]; then
  echo "Terminating..." >&2
  options_usage
  exit 1
fi

eval set -- "$TMPGETOPT"

while true
do
  case "$1" in
    -c|--system_configured) SC_BYPASS=1; shift;;
    -d|--destdir) DESTDIR=$2; shift 2;;
    -e|--editor) EDITOR=$2; shift 2;;
    -h|--help)     options_usage; exit 1;;
    -i|--system_installed) SI_BYPASS=1; shift;;
    -v|--version) echo $VER; exit 1;;
    --) shift; break;;
    *) options_usage; exit 1;;
  esac
done
#  Done with options


ANSWER="/tmp/.setup"    # dialog answer
LOG="/dev/tty6"            # use the first VT not dedicated to a running console
mkdir -p $DESTDIR        # install directory
arch=$(uname -m)        # archicture

# abstract the common pacman args
PACMAN="pacman --root ${DESTDIR} --config /tmp/pacman.conf --noconfirm --noprogressbar"

# sources
SYNC_URL=
MIRRORLIST="/etc/pacman.d/mirrorlist"
PACKAGES=

# clock
HARDWARECLOCK="localtime"
TIMEZONE="America/Montreal"

# partitions
PART_ROOT=

# default filesystem specs (the + is bootable flag)
# <mountpoint>:<partsize>:<fstype>[:+]
DEFAULTFS="/boot:32:ext2:+ swap:512:swap /:7000:reiserfs /home:*:reiserfs"

# install stages
S_SRC=0         # choose install medium
S_NET=0         # network configuration
S_CLOCK=0       # clock and timezone
S_PART=0        # partitioning
S_MKFS=0        # formatting
S_MKFSAUTO=0    # auto fs part/formatting TODO: kill this
S_SELECT=0      # package selection
S_INSTALL=0     # package installation
S_CONFIG=0      # configuration editing
S_BOOTLOADER=0    # bootloader

# main menu selection tracker
CURRENT_SELECTION=""

# dialog function
DIALOG() {
   # parameters: see dialog(1)
   # returns: whatever dialog did
   dialog --backtitle "$TITLE" --aspect 15 --yes-label "$_yes" --no-label "$_no" --cancel-label "$_cancel" "$@"
   return $?
}

# prepares target system as a chroot
bind_mount()
{
[ -e "${DESTDIR}/sys" ] || mkdir "${DESTDIR}/sys"
[ -e "${DESTDIR}/proc" ] || mkdir "${DESTDIR}/proc"
[ -e "${DESTDIR}/dev" ] || mkdir "${DESTDIR}/dev"
mount -t sysfs sysfs "${DESTDIR}/sys"
mount -t proc proc "${DESTDIR}/proc"
mount -o bind /dev "${DESTDIR}/dev"
}

# tears down chroot in target system
bind_umount()
{
umount $DESTDIR/proc
umount $DESTDIR/sys
umount $DESTDIR/dev
}

# find devices/disks
finddisks() {
    workdir="$PWD"
    cd /sys/block
    # ide devices
    for dev in $(ls | egrep '^hd'); do
        if [ "$(cat $dev/device/media)" = "disk" ]; then
            echo "/dev/$dev"
            [ "$1" ] && echo $1
        fi
    done
    #scsi/sata devices
    for dev in $(ls | egrep '^sd'); do
        # TODO: what is the significance of 5?
        if ! [ "$(cat $dev/device/type)" = "5" ]; then
            echo "/dev/$dev"
            [ "$1" ] && echo $1
        fi
    done
    # SD/MMC controllers
    for dev in $(ls | egrep '^mmcblk'); do
        if [ -e /sys/block/$dev ]; then
            echo "/dev/$dev"
            [ "$1" ] && echo $1
        fi
    done
    # cciss controllers
    if [ -d /dev/cciss ] ; then
        cd /dev/cciss
        for dev in $(ls | egrep -v 'p'); do
            echo "/dev/cciss/$dev"
            [ "$1" ] && echo $1
        done
    fi
    # Smart 2 controllers
    if [ -d /dev/ida ] ; then
        cd /dev/ida
        for dev in $(ls | egrep -v 'p'); do
            echo "/dev/ida/$dev"
            [ "$1" ] && echo $1
        done
    fi

    cd "$workdir"
}

# getuuid()
# converts /dev/[hs]d?[0-9] devices to UUIDs
#
# parameters: device file
# outputs:    UUID on success
#             nothing on failure
# returns:    nothing
getuuid()
{
    if [ -n "$(echo ${1} |grep -E '[shv]d[a-z]+[0-9]+$|mmcblk[0-9]+p[0-9]+$')" ]; then
        echo "$(blkid -s UUID -o value ${1})"
    fi
}

# Find partitions
findpartitions() {
    workdir="$PWD"
    for devpath in $(finddisks); do
        disk=$(echo $devpath | sed 's|.*/||')
        cd /sys/block/$disk
        for part in $disk*; do
            # check if not already assembled to a raid device
            if ! [ "$(cat /proc/mdstat 2>/dev/null | grep $part)" -o "$(fstype 2>/dev/null </dev/$part | grep "lvm2")" -o

"$(sfdisk -c /dev/$disk $(echo $part | sed -e "s#$disk##g") 2>/dev/null | grep "5")" ]; then
                if [ -d $part ]; then
                    echo "/dev/$part"
                    [ "$1" ] && echo $1
                fi
            fi
        done
    done
    # include any mapped devices
    for devpath in $(ls /dev/mapper 2>/dev/null | grep -v control); do
        echo "/dev/mapper/$devpath"
        [ "$1" ] && echo $1
    done
    # include any raid md devices
    for devpath in $(ls -d /dev/md* | grep '[0-9]' 2>/dev/null); do
        if cat /proc/mdstat | grep -qw $(echo $devpath | sed -e 's|/dev/||g'); then
        echo "$devpath"
        [ "$1" ] && echo $1
        fi
    done
    # inlcude cciss controllers
    if [ -d /dev/cciss ] ; then
        cd /dev/cciss
        for dev in $(ls | egrep 'p'); do
            echo "/dev/cciss/$dev"
            [ "$1" ] && echo $1
        done
    fi
    # inlcude Smart 2 controllers
    if [ -d /dev/ida ] ; then
        cd /dev/ida
        for dev in $(ls | egrep 'p'); do
            echo "/dev/ida/$dev"
            [ "$1" ] && echo $1
        done
    fi
    cd "$workdir"
}


printk()
{
    case $1 in
        "on")  echo 4 >/proc/sys/kernel/printk ;;
        "off") echo 0 >/proc/sys/kernel/printk ;;
    esac
}

# _mkfs()
# Create and mount filesystems in our destination system directory.
#
# args:
#  domk: Whether to make the filesystem or use what is already there
#  device: Device filesystem is on
#  fstype: type of filesystem located at the device (or what to create)
#  dest: Mounting location for the destination system
#  mountpoint: Mount point inside the destination system, e.g. '/boot'

# returns: 1 on failure
_mkfs() {
    local _domk=$1
    local _device=$2
    local _fstype=$3
    local _dest=$4
    local _mountpoint=$5

    # we have two main cases: "swap" and everything else.
    if [ "${_fstype}" = "swap" ]; then
        swapoff ${_device} >/dev/null 2>&1
        if [ "${_domk}" = "yes" ]; then
            mkswap ${_device} >$LOG 2>&1
            if [ $? != 0 ]; then
                DIALOG --msgbox "${_mkswaperr} mkswap ${_device}" 0 0
                return 1
            fi
        fi
        swapon ${_device} >$LOG 2>&1
        if [ $? != 0 ]; then
            DIALOG --msgbox "${_swaponerr} swapon ${_device}" 0 0
            return 1
        fi
    else
        # make sure the fstype is one we can handle
        local knownfs=0
        for fs in xfs jfs reiserfs ext2 ext3 ext4; do
            [ "${_fstype}" = "${fs}" ] && knownfs=1 && break
        done
        if [ $knownfs -eq 0 ]; then
            DIALOG --msgbox "unknown fstype ${_fstype} for ${_device}" 0 0
            return 1
        fi
        # if we were tasked to create the filesystem, do so
        if [ "${_domk}" = "yes" ]; then
            local ret
            case ${_fstype} in
                xfs)      mkfs.xfs -f ${_device} >$LOG 2>&1; ret=$? ;;
                jfs)      yes | mkfs.jfs ${_device} >$LOG 2>&1; ret=$? ;;
                reiserfs) yes | mkreiserfs ${_device} >$LOG 2>&1; ret=$? ;;
                ext2)     mke2fs "${_device}" >$LOG 2>&1; ret=$? ;;
                ext3)     mke2fs -j ${_device} >$LOG 2>&1; ret=$? ;;
                ext4)     mke2fs -t ext4 ${_device} >$LOG 2>&1; ret=$? ;;
                nilfs2)   mkfs.nilfs2 ${_device} >$LOG 2>&1; ret=$? ;;
                # don't handle anything else here, we will error later
            esac
            if [ $ret != 0 ]; then
                DIALOG --msgbox "${_errorfscreate} ${_fstype} (${_device})" 0 0
                return 1
            fi
            sleep 2
        fi
        # create our mount directory
        mkdir -p ${_dest}${_mountpoint}
        # mount the bad boy
        mount -t ${_fstype} ${_device} ${_dest}${_mountpoint} >$LOG 2>&1
        if [ $? != 0 ]; then
            DIALOG --msgbox "${_errormounting} ${_dest}${_mountpoint}" 0 0
            return 1
        fi
    fi

    # add to temp fstab
    local _uuid="$(getuuid ${_device})"
    if [ -n "${_uuid}" ]; then
        _device="UUID=${_uuid}"
    fi
    echo -n "${_device} ${_mountpoint} ${_fstype} defaults 0 " >>/tmp/.fstab

    if [ "${_fstype}" = "swap" ]; then
        echo "0" >>/tmp/.fstab
    else
        echo "1" >>/tmp/.fstab
    fi
}

# Disable swap and all mounted partitions for the destination system. Unmount
# the destination root partition last!
_umountall()
{
    DIALOG --infobox "$_umountingall" 0 0
    swapoff -a >/dev/null 2>&1
    umount $(mount | grep -v "${DESTDIR} " | grep "${DESTDIR}" | sed 's|\ .*||g') >/dev/null 2>&1
    umount $(mount | grep "${DESTDIR} " | sed 's|\ .*||g') >/dev/null 2>&1
}

# _getdisccapacity()
#
# parameters: device file
# outputs:    disc capacity in bytes
_getdisccapacity()
{
 echo $(($(</sys/dev/block/$((16#$(stat -c %t $1))):$((16#$(stat -c %T $1)))/size)*512))
}

# Get a list of available disks for use in the "Available disks" dialogs. This
# will print the disks as follows, getting size info from _getdisccapacity():
#   /dev/sda: 625000 MiB (610 GiB)
#   /dev/sdb: 476940 MiB (465 GiB)
_getavaildisks()
{
    for DISC in $(finddisks); do
        DISC_SIZE=$(_getdisccapacity $DISC)
        echo "$DISC: $((DISC_SIZE / 2**20)) MiB ($((DISC_SIZE / 2**30)) GiB)\n"
    done
}

partition() {
    if [ "$S_MKFSAUTO" = "1" ]; then
        DIALOG --msgbox "${_partsalreadyprepared}" 0 0
        return 0
    fi

    _umountall

    # Select disk to partition
    DISCS=$(finddisks _)
    DISCS="$DISCS ${_other_entry} - ${_done_entry} +"
    DIALOG --msgbox "${_presentlyavaildisks}\n\n$(_getavaildisks)\n" 0 0
    DISC=""
    while true; do
        # Prompt the user with a list of known disks
        DIALOG --menu "${_selectdisktopart}" 14 55 7 $DISCS 2>$ANSWER || return 1
        DISC=$(cat $ANSWER)
        if [ "$DISC" = "$_other_entry" ]; then
            DIALOG --inputbox "${_enterdiskpath}" 8 65 "/dev/sda" 2>$ANSWER || return 1
            DISC=$(cat $ANSWER)
        fi
        # Leave our loop if the user is done partitioning
        [ "$DISC" = "$_done_entry" ] && break
        # Partition disc
        DIALOG --msgbox "${_prepartitionmessage}" 18 70
        cfdisk $DISC
    done
    S_PART=1
}

mountpoints() {
    if [ "$S_MKFSAUTO" = "1" ]; then
        DIALOG --msgbox "${_alreadyprepparts}" 0 0
        return 0
    fi
    while [ "$PARTFINISH" != "$_done_entry" ]; do
        : >/tmp/.fstab
        : >/tmp/.parts

        # Determine which filesystems are available
        [ "$(which mkreiserfs 2>/dev/null)" ] && FSOPTS="reiserfs Reiser3"
        [ "$(which mkfs.xfs 2>/dev/null)" ]   && FSOPTS="$FSOPTS xfs XFS"
        [ "$(which mkfs.jfs 2>/dev/null)" ]   && FSOPTS="$FSOPTS jfs JFS"
        [ "$(which mkfs.ext2 2>/dev/null)" ]  && FSOPTS="$FSOPTS ext2 ext2 ext3 ext3 ext4 ext4"

        # Select mountpoints
        DIALOG --msgbox "${_nowchooseparts2use}" 0 0
        DIALOG --msgbox "${_presentlyavaildisks}\n\n$(_getavaildisks)\n" 0 0
        PARTS=$(findpartitions _)
        DIALOG --menu "${_selectswappart}" 21 50 13 ${_none_entry} - $PARTS 2>$ANSWER || return 1
        PART=$(cat $ANSWER)
        swap_partition="$PART"
        PARTS="$(echo $PARTS | sed -e "s#${PART}\ _##g")"
        if [ "$PART" != "${_none_entry}" ]; then
            DOMKFS="no"
            DIALOG --yesno "${_formatpart} $PART ?\n\n(${_allcontentswillbelost})" 0 0 && DOMKFS="yes"
            echo "$PART:swap:swap:$DOMKFS" >>/tmp/.parts
        fi

        DIALOG --menu "${_selecttherootpart}" 21 50 13 $PARTS 2>$ANSWER || return 1
        PART=$(cat $ANSWER)
        PARTS="$(echo $PARTS | sed -e "s#${PART}\ _##g")"
        PART_ROOT=$PART
        # Select root filesystem type
        DIALOG --menu "${_selectfsfor} $PART" 15 60 6 $FSOPTS 2>$ANSWER || return 1
        FSTYPE=$(cat $ANSWER)
        DOMKFS="no"
        DIALOG --yesno "${_formatpart} $PART ?\n\n(${_allcontentswillbelost})" 0 0 && DOMKFS="yes"
        echo "$PART:$FSTYPE:/:$DOMKFS" >>/tmp/.parts

        #
        # Additional partitions
        #
        DIALOG --menu "${_wannamountotherparts}" 21 50 13 $PARTS ${_done_entry} _ 2>$ANSWER || return 1
        PART=$(cat $ANSWER)
        while [ "$PART" != "$_done_entry" ]; do
            PARTS="$(echo $PARTS | sed -e "s#${PART}\ _##g")"
            # Select a filesystem type
            DIALOG --menu "${_selectfsfor} $PART" 15 60 6 $FSOPTS 2>$ANSWER || return 1
            FSTYPE=$(cat $ANSWER)
            MP=""
            while [ "${MP}" = "" ]; do
                DIALOG --inputbox "${_selectmpoint} $PART" 8 65 "/boot" 2>$ANSWER || return 1
                MP=$(cat $ANSWER)
                if grep ":$MP:" /tmp/.parts; then
                    DIALOG --msgbox "${_twopartsonamp}" 8 65
                    MP=""
                fi
            done
            DOMKFS="no"
            DIALOG --yesno "${_formatpart} $PART ?\n\n(${_allcontentswillbelost})" 0 0 && DOMKFS="yes"
            echo "$PART:$FSTYPE:$MP:$DOMKFS" >>/tmp/.parts
            DIALOG --menu "${_wannamountotherparts}" 21 50 13 $PARTS ${_done_entry} _ 2>$ANSWER || return 1
            PART=$(cat $ANSWER)
        done
        DIALOG --yesno "${_formatconfirmmessage}\n\n$(for i in $(cat /tmp/.parts); do echo "$i\n";done)" 18 0 &&

PARTFINISH="$_done_entry"
    done

    _umountall

    for line in $(cat /tmp/.parts); do
        PART=$(echo $line | cut -d: -f 1)
        FSTYPE=$(echo $line | cut -d: -f 2)
        MP=$(echo $line | cut -d: -f 3)
        DOMKFS=$(echo $line | cut -d: -f 4)
        umount ${DESTDIR}${MP}
        if [ "$DOMKFS" = "yes" ]; then
            if [ "$FSTYPE" = "swap" ]; then
                DIALOG --infobox "${_creatingactswap} $PART" 0 0
            else
                DIALOG --infobox "${_formattingpart} $PART ($FSTYPE), ${_mountingparton} ${DESTDIR}${MP}" 0 0
            fi
            _mkfs yes $PART $FSTYPE $DESTDIR $MP || return 1
        else
            if [ "$FSTYPE" = "swap" ]; then
                DIALOG --infobox "${_activatingswapon} $PART" 0 0
            else
                DIALOG --infobox "${_mountingpart} $PART ⇒ ${DESTDIR}${MP}" 0 0
            fi
            _mkfs no $PART $FSTYPE $DESTDIR $MP || return 1
        fi
        sleep 1
    done

    DIALOG --msgbox "${_partsmountsuccess}" 0 0
    S_MKFS=1
}

# installs to the target folder
installsystem()
{
# create log file / remove if it exists
inst_log="/tmp/installer.log"
[[ -f ${inst_log} ]] && rm ${inst_log}

_result="${_installationsuccess}"
mkdir -p $DESTDIR/bypass
cd $DESTDIR
#####mount /run/archiso/sfs/root-image/root-image.fs $DESTDIR/bypass
# Array of files
#####DIRS=($DESTDIR/bypass/*)
DIRS=(/*)
# Show a progress bar
( \
n=${#DIRS[*]};
i=0
for f in "${DIRS[@]}"
do
PCT=$(( 100*(++i)/n ))
    echo "XXX"
    echo $PCT
    echo "XXX"
    cp -pR $f $DESTDIR 2>> ${inst_log}
done
) | dialog --title "Installing ArchBang..." --gauge "Copying file..." 7 75

# test for errors in file
[[ -s ${inst_log} ]] && _result="${_installationfail}"

# display results
DIALOG --title "$_result" --exit-label "${_continue_label}" \
      --textbox "${inst_log}" 18 83

sync
S_INSTALL=1
# System configuration
DIALOG --infobox "${_configuringsystem}" 6 40
hd_config
auto_fstab
}

# Set up new install copy over files from /src
hd_config()
{
# grub-bios directory setup
mkdir -p $DESTDIR/boot/grub
#nm
rm $DESTDIR/etc/xdg/autostart/nm-applet.desktop &>/dev/null
#little bonus
cp -ra /etc/skel/.[a-zA-Z0-9]* ${DESTDIR}/root/ &>/dev/null
#cp -a /src/menu.xml ${DESTDIR}/etc/skel/.config/openbox/menu.xml &>/dev/null
cp -a /src/rc.xml ${DESTDIR}/etc/skel/.config/openbox/rc.xml &>/dev/null
#cp -a /src/.conkyrc ${DESTDIR}/etc/skel/.conkyrc &>/dev/null
cp -a /src/.Xdefaults ${DESTDIR}/etc/skel/.Xdefaults &>/dev/null
#cp -a /src/menu.xml ${DESTDIR}/root/.config/openbox/menu.xml &>/dev/null
#cp -a /src/rc.xml ${DESTDIR}/root/.config/openbox/rc.xml &>/dev/null
#cp -a /src/.conkyrc ${DESTDIR}/root/.conkyrc &>/dev/null
cp -a /src/.Xdefaults ${DESTDIR}/root/.Xdefaults &>/dev/null
cp -a /src/oblogout.conf ${DESTDIR}/etc/oblogout.conf &>/dev/null
cp -a /src/rc.local ${DESTDIR}/etc/rc.local &>/dev/null
#cp -a /src/rc.shutdown ${DESTDIR}/etc/rc.shutdown &>/dev/null
#cp /src/inittab ${DESTDIR}/etc/inittab &>/dev/null
cp /etc/X11/xorg.conf.d/20-gpudriver.conf ${DESTDIR}/etc/X11/xorg.conf.d/20-gpudriver.conf &>/dev/null
#cp -a /src/rc.conf ${DESTDIR}/etc/rc.conf &>/dev/null
}

# preprocess fstab file
# comments out old fields and inserts new ones
# according to partitioning/formatting stage
#
auto_fstab()
{
    if [ "$S_MKFS" = "1" -o "$S_MKFSAUTO" = "1" ]; then
        if [ -f /tmp/.fstab ]; then
            # comment out stray /dev entries
            sed -i 's/^\/dev/#\/dev/g' $DESTDIR/etc/fstab
            # append entries from new configuration
            sort /tmp/.fstab >>$DESTDIR/etc/fstab
        fi
    fi
}


# Get any optional bootloader options
get_bl_options() {
DIALOG --inputbox "${_get_bootloader_options}" 8 50 2>$ANSWER || return 1
bootloader_options=$(cat $ANSWER)
}

# This is my new install for grub-bios [ will upload original function ]
# Will need a way to check grub.cfg although you cannot edit it directly
grub-bios() {

DEVS=$(finddisks _)
    #DEVS="$DEVS $(findpartitions _)"
    if [ "$DEVS" = "" ]; then
        DIALOG --msgbox "${_nohdfound}" 0 0
        return 1
    fi
    # This has to be before the _whereinststage1 dialog because chroot uses $ANSWER later on
    # It could be moved if we change the the redirection of the output to ANSWER2 (or whatever)
    # Uses | for sed delimiters in case there's a reason that / could be used in bootloader options
    get_bl_options
    [ ! -z "${bootloader_options}" ] && sed -i "s|^GRUB_CMDLINE_LINUX=.*|GRUB_CMDLINE_LINUX=\"$bootloader_options\"|"

${DESTDIR}/etc/default/grub
    DIALOG --menu "${_whereinststage1}" 14 55 7 $DEVS 2>$ANSWER || return 1
    ROOTDEV=$(cat $ANSWER)
    DIALOG --infobox "${_installinggrub}" 3 30

    # freeze xfs filesystems if any, to enable grub installation on xfs filesystems
    if [ -x /usr/sbin/xfs_freeze ]; then
     if [ "$(blkid -o value -s TYPE -p $(findmnt -o source -n $DESTDIR/boot))" == "xfs" ];then
      /usr/sbin/xfs_freeze -f $DESTDIR/boot > /dev/null 2>&1
      unfreezeboot=y
     fi
     if [ "$(blkid -o value -s TYPE -p $(findmnt -o source -n $DESTDIR))" == "xfs" ];then
      /usr/sbin/xfs_freeze -f $DESTDIR/ > /dev/null 2>&1
      unfreezeroot=y
     fi
    fi

bind_mount

modprobe dm-mod
chroot $DESTDIR /usr/sbin/grub-install --target=i386-pc --recheck --debug "$(cat $ANSWER)" > /tmp/grub.log 2>&1
grub_success=$?
mkdir -p $DESTDIR/boot/grub/locale
cp $DESTDIR/usr/share/locale/en\@quot/LC_MESSAGES/grub.mo $DESTDIR/boot/grub/locale/en.mo
chroot $DESTDIR /usr/sbin/grub-mkconfig -o /boot/grub/grub.cfg > /dev/null 2>&1
sync

bind_umount

    # unfreeze xfs filesystems if any
    if [ -x /usr/sbin/xfs_freeze ]; then
     [ -z "$unfreezeboot" ] && /usr/sbin/xfs_freeze -u $DESTDIR/boot > /dev/null 2>&1
     [ -z "$unfreezeroot" ] && /usr/sbin/xfs_freeze -u $DESTDIR/ > /dev/null 2>&1
    fi

cat $DESTDIR/tmp/grub.log >$LOG
# Check to see if grub installed correctly ! not there then exit
    if [[ $grub_success != 0 ]]; then
      DIALOG --msgbox "${_errorinstgrub} (${_errordetails} $LOG)" 0 0
      return 1
      S_BOOTLOADER=99
    else
      DIALOG --msgbox "${_instgrubsuccess}" 0 0
      S_BOOTLOADER=1
    fi
}

syslinux_install()
{
sl_bootdir_fs=$(df -kT $DESTDIR/boot | grep $DESTDIR | awk '{print $2}')
local SYSLINUXLOG=/tmp/syslinux.log

case "$sl_bootdir_fs" in
  ext[2-4]|btrfs)
    sl_rootdir_dev=$(df -kT $DESTDIR | grep $DESTDIR | awk '{print $1}')
    sl_rootdir_uuid=$(lsblk -fn $sl_rootdir_dev | awk '{print $3}')
    get_bl_options
    syslinux-install_update -iam -c $DESTDIR > $SYSLINUXLOG 2>&1
    if [ "$?" -eq "0" ]; then
      sed -i "s|/dev/sda3|UUID=$sl_rootdir_uuid|g" ${DESTDIR}/boot/syslinux/syslinux.cfg >> $SYSLINUXLOG 2>&1
      [ ! -z "$bootloader_options" ] && sed -i "/\t.*APPEND.*/s|$| $bootloader_options|"

${DESTDIR}/boot/syslinux/syslinux.cfg >> $SYSLINUXLOG 2>&1
      DIALOG --yesno "${_syslinuxcheckcfg}" 8 50 && $EDITOR $DESTDIR/boot/syslinux/syslinux.cfg
      DIALOG --msgbox "${_instsyslinuxsuccess}" 0 0
      S_BOOTLOADER=1
    else
      DIALOG --yesno "${_instsyslinuxfailure}" 8 50 && DIALOG --textbox $SYSLINUXLOG 22 70
      S_BOOTLOADER=99
    fi
    ;;
  *)
    echo ${_syslinuxwrongfs}
    read && return 1
    ;;
esac
}

bootloader_checker() {
# no need to inform the user on a good bootloader installation but it's the only one that should umount
case "$S_BOOTLOADER" in
  0)    DIALOG --msgbox "${_bootloader_not_installed}" 22 70 ;;
  1)     _umountall &>/dev/null ; sleep 1 ; exit 0 ;;
  99)    DIALOG --msgbox "${_bootloader_failed}" 22 70 ;;
  *)    DIALOG --msgbox "${_bootloader_unknown}" 22 70 ;;
esac
}

set_clock()
{
    # utc or local?
    DIALOG --menu "${_machinetimezone}" 10 72 2 \
        "UTC" " " \
        "localtime" " " \
        2>$ANSWER || return 1
    HARDWARECLOCK=$(cat $ANSWER)

    # timezone?
    REGIONS=""
    for i in $(grep '^[A-Z]' /usr/share/zoneinfo/zone.tab | cut -f 3 | sed -e 's#/.*##g'| sort -u); do
      REGIONS="$REGIONS $i -"
    done
    region=""
    zone=""
    while [ -z "$zone" ];do
      region=""
      while [ -z "$region" ];do
        :>$ANSWER
        DIALOG --menu "${_selectregion}" 0 0 0 $REGIONS 2>$ANSWER
        region=$(cat $ANSWER)
      done
      ZONES=""
      for i in $(grep '^[A-Z]' /usr/share/zoneinfo/zone.tab | grep $region/ | cut -f 3 | sed -e "s#$region/##g"| sort -u);

do
        ZONES="$ZONES $i -"
      done
      :>$ANSWER
      DIALOG --menu "${_selecttimezone}" 0 0 0 $ZONES 2>$ANSWER
      zone=$(cat $ANSWER)
    done
    TIMEZONE="$region/$zone"

    # set system clock from hwclock - stolen from rc.sysinit
    local HWCLOCK_PARAMS=""
    if [ "$HARDWARECLOCK" = "UTC" ]; then
        HWCLOCK_PARAMS="$HWCLOCK_PARAMS --utc"
    else
        HWCLOCK_PARAMS="$HWCLOCK_PARAMS --localtime"
    fi
    /sbin/hwclock --hctosys $HWCLOCK_PARAMS --noadjfile

    # display and ask to set date/time
    dialog --calendar "${_choosedatetime}" 0 0 0 0 0 2> $ANSWER || return 1
    local _date="$(cat $ANSWER)"
    dialog --timebox "${_choosehourtime}" 0 0 2> $ANSWER || return 1
    local _time="$(cat $ANSWER)"
    echo "date: $_date time: $_time" >$LOG

    # save the time
    # DD/MM/YYYY hh:mm:ss -> YYYY-MM-DD hh:mm:ss
    local _datetime="$(echo "$_date" "$_time" | sed 's#\(..\)/\(..\)/\(....\) \(..\):\(..\):\(..\)#\3-\2-\1 \4:\5:\6#g')"
    echo "setting date to: $_datetime" >$LOG
    date -s "$_datetime" 2>&1 >$LOG
    /sbin/hwclock --systohc $HWCLOCK_PARAMS --noadjfile

    S_CLOCK=1
}

installer_locale()
{
  dialog --backtitle "archbang.org" --radiolist "Choose your language:" 15 40 5 \
    1 English on \
    2 American off \
    2>$ANSWER

    case $(cat $ANSWER) in
      "1") . ${SRC_LANG}/abinstall_msg.en;;
      "2") . ${SRC_LANG}/abinstall_msg.en;;
      *) DONE=1;;
    esac
  [[ ! -s $ANSWER ]] && exit 1
}

# could get rid of this function by going straight to prepare drive from main menu
prepare_harddrive()
{
    S_MKFSAUTO=0
    S_MKFS=0
    DONE=0
    local CURRENT_SELECTION=""
    while [ "$DONE" = "0" ]; do
        if [ -n "$CURRENT_SELECTION" ]; then
            DEFAULT="--default-item $CURRENT_SELECTION"
        else
            DEFAULT=""
        fi
        DIALOG $DEFAULT --menu "${_diskpreparation}" 12 60 5 \
            "1" "${_manualpartit}" \
            "2" "${_mainmenulabel}" 2>$ANSWER
        CURRENT_SELECTION="$(cat $ANSWER)"
        case $(cat $ANSWER) in
            "1")
                partition
                PARTFINISH=""
                mountpoints ;;
            *)
                DONE=1 ;;
        esac
    done
}

# run_mkinitcpio()
# runs mkinitcpio on the target system, displays output
#
run_mkinitcpio()
{
    bind_mount
    # all mkinitcpio output goes to /tmp/mkinitcpio.log, which we tail
    # into a dialog
    ( \
        touch /tmp/setup-mkinitcpio-running
        echo "${_runninginitcpio}" > /tmp/mkinitcpio.log; \
        echo >> /tmp/mkinitcpio.log; \
        chroot "$DESTDIR" /sbin/depmod >>/tmp/mkinitcpio.log 2>&1
        chroot "$DESTDIR" /usr/bin/mkinitcpio -p linux >>/tmp/mkinitcpio.log 2>&1
        echo $? > /tmp/.mkinitcpio-retcode
        echo >> /tmp/mkinitcpio.log
        rm -f /tmp/setup-mkinitcpio-running
    ) &

    sleep 2

    DIALOG --title "${_runninginitcpiotitle}" \
        --no-kill --tailboxbg "/tmp/mkinitcpio.log" 18 70 2>$ANSWER
    while [ -f /tmp/setup-mkinitcpio-running ]; do
        sleep 1
    done
    kill $(cat $ANSWER)

    bind_umount

    # alert the user to fatal errors
    if [ $(cat /tmp/.mkinitcpio-retcode) -ne 0 ]; then
        DIALOG --title "${_mkinitcpiofailerror}" --exit-label \
        "${_continue_label}" --textbox "/tmp/mkinitcpio.log" 18 70
        return 1
    fi
}

configure_system()
{
    ## PREPROCESSING ##
    # only done on first invocation of configure_system
    if [ $S_CONFIG -eq 0 ]; then
        if [ "$TIMEZONE" != "" -a -e "/usr/share/zoneinfo/$TIMEZONE" ]; then
          cd $DESTDIR/etc;  ln -sf /usr/share/zoneinfo/$TIMEZONE localtime
        fi
    fi
    ## END PREPROCESS ##

    local CURRENT_SELECTION=""
  while true; do
       # if [ -n "$CURRENT_SELECTION" ]; then
       #     DEFAULT="--default-item $CURRENT_SELECTION"
       # else
        DIALOG $DEFAULT --menu "Configuration" 17 80 10 \
            "Root-Password"             "${_definerootpass}" \
            "User-Name"                 "${_defineusername}" \
            "Config-system"             "${_doeditconfig}" \
            "${_return_label}"          "${_mainmenulabel}" 2>$ANSWER || CURRENT_SELECTION="${_return_label}"
        CURRENT_SELECTION="$(cat $ANSWER)"

        if [ "$CURRENT_SELECTION" = "${_return_label}" -o -z "$CURRENT_SELECTION" ]; then       # exit
            break
        elif [ "$CURRENT_SELECTION" = "Root-Password" ]; then
            while true; do
                chroot ${DESTDIR} passwd root && break
            done
        elif [ "$CURRENT_SELECTION" = "User-Name" ]; then
                cp /usr/bin/mvuser.sh $DESTDIR/root/
                rm $DESTDIR/home/live/.config/openbox/menu.xml
                cp -a /src/menu.xml $DESTDIR/home/live/.config/openbox/menu.xml
                rm $DESTDIR/home/live/.config/openbox/rc.xml
                cp -a /src/rc.xml $DESTDIR/home/live/.config/openbox/rc.xml
                rm $DESTDIR/home/live/.conkyrc
                cp -a /src/.conkyrc $DESTDIR/home/live/.conkyrc
                rm $DESTDIR/home/live/.conkyrc1
                cp -a /src/.conkyrc1 $DESTDIR/home/live/.conkyrc1
                rm $DESTDIR/home/live/.Xdefaults
                cp -a /src/.Xdefaults $DESTDIR/home/live/.Xdefaults &>/dev/null
                chroot ${DESTDIR} chown live:users /home/live -R &> /dev/null
        chroot ${DESTDIR} sed -i 's/^exec.*openbox-session$/exec dbus-launch openbox-session/' /home/live/.xinitrc

&>/dev/null
                chroot ${DESTDIR} /root/mvuser.sh
                rm $DESTDIR/root/mvuser.sh

        elif [ "$CURRENT_SELECTION" = "Config-system" ]; then
    while true; do
        if [ -n "$CURRENT_SELECTION" ]; then
            DEFAULT="--default-item $CURRENT_SELECTION"
        else
            DEFAULT=""
        fi
        # Create modules.conf as recent iso does not have it
        touch $DESTDIR/etc/modules-load.d/modules.conf
        DIALOG $DEFAULT --menu "Configuration" 17 80 10 \
            "/etc/fstab"                "${_fstabtext}" \
            "/etc/mkinitcpio.conf"      "${_mkinitcpioconftext}" \
            "/etc/modprobe.d/modprobe.conf" "${_modprobeconftext}" \
            "/etc/modules-load.d/modules.conf" "{$_modulesloadconftext}" \
            "/etc/resolv.conf"          "${_resolvconftext}" \
            "/etc/hostname"                 "${_hostnametext}" \
            "/etc/hosts"                "${_hoststext}" \
            "/etc/X11/xorg.conf.d/01-keyboard-layout.conf" "${_xorgkblayouttext}" \
            "/etc/vconsole.conf"          "${_vconsoletext}" \
            "/etc/locale.conf"              "${_localeconftext}" \
            "/etc/locale.gen"           "${_localegentext}" \
            "/etc/pacman.d/mirrorlist"  "${_mirrorlisttext}" \
            "/etc/X11/xorg.conf.d/10-evdev.conf"  "${_xorgevdevconftext}" \
            "${_return_label}"        "${_return_label}" 2>$ANSWER || CURRENT_SELECTION="${_return_label}"
        CURRENT_SELECTION="$(cat $ANSWER)"

        if [ "$CURRENT_SELECTION" = "${_return_label}" -o -z "$CURRENT_SELECTION" ]; then       # exit
            break
        else
            $EDITOR ${DESTDIR}${CURRENT_SELECTION}
        fi
    done
        else
            $EDITOR ${DESTDIR}${CURRENT_SELECTION}
        fi
  done
    ## POSTPROCESSING
    cp /run/archiso/bootmnt/arch/boot/${arch}/vmlinuz ${DESTDIR}/boot/vmlinuz-linux
    run_mkinitcpio
    # /etc/locale.gen
    #
    chroot ${DESTDIR} locale-gen

    ## END POSTPROCESSING ##
    rm -f ${DESTDIR}/usr/bin/abinstall &> /dev/null
    rm -f ${DESTDIR}/usr/bin/mvuser.sh &> /dev/null
    rm -rf ${DESTDIR}/vomi &> /dev/null
    rm -rf ${DESTDIR}/bypass &> /dev/null
    rm -rf ${DESTDIR}/src &> /dev/null
    rmdir ${DESTDIR}/bypass &> /dev/null
    rmdir ${DESTDIR}/src &> /dev/null
    #rm ${DESTDIR}/etc/lastmin &> /dev/null
    rm ${DESTDIR}/lib/initcpio/archiso_pxe_nbd &> /dev/null
    rm ${DESTDIR}/lib/initcpio/hooks/archiso &> /dev/null
    rm ${DESTDIR}/lib/initcpio/hooks/archiso_loop_mnt &> /dev/null
    rm ${DESTDIR}/lib/initcpio/hooks/archiso_pxe_nbd &> /dev/null
    rm ${DESTDIR}/lib/initcpio/install/archiso &> /dev/null
    rm ${DESTDIR}/lib/initcpio/install/archiso_loop_mnt &> /dev/null
    rm ${DESTDIR}/lib/initcpio/install/archiso_pxe_nbd &> /dev/null

    # place enable slim here and remove autologin@.service
    rm ${DESTDIR}/etc/systemd/system/autologin@.service &> /dev/null
    rm ${DESTDIR}/etc/systemd/system/default.target &> /dev/null
    chroot ${DESTDIR} systemctl -f enable slim.service || true

    S_CONFIG=1
}


# Install of bootloader or not!
# TODO add syslinux install possibly efi [yuk!]
install_bootloader()
{
    DIALOG --colors --menu "${_installabootloader}\n\n" \
        10 65 3 \
        "GRUB" "${_installgrubbl}" \
        "Syslinux" "${_installsyslinux}" \
        "${_none_label}" "${_installnobl}" 2>$ANSWER
    case $(cat $ANSWER) in
        "GRUB") grub-bios ;;
        "Syslinux") syslinux_install ;;
    esac
}

mainmenu()
{
    if [ -n "$CURRENT_SELECTION" ]; then
        DEFAULT="--default-item $CURRENT_SELECTION"
    else
        DEFAULT=""
    fi
    DIALOG $DEFAULT --title " ${_mainmenulabel} " \
        --menu "${_mainmenuhelp}" 16 55 8 \
        "1" "${_datetimetext}" \
        "2" "${_preparediskstext}" \
        "3" "${_installsystemtext}" \
        "4" "${_configuresystemtext}" \
        "5" "${_instbootloadertext}" \
        "6" "${_quittext}" 2>$ANSWER
    CURRENT_SELECTION="$(cat $ANSWER)"
    case $(cat $ANSWER) in
        "1")
            set_clock ;;
        "2")
            prepare_harddrive;_hd_is_prepared=1
        ;;
        "3")
            if [ "$_hd_is_prepared" == "1" ];then
             installsystem;_system_is_installed=1
            else
             echo "$_forgotpreparehd"
             read
             if [ "$REPLY" == "perso" ];then
              installsystem;_system_is_installed=1
             fi
            fi
        ;;
        "4")
            if [ "$_system_is_installed" == "1" ] || [ $SI_BYPASS = 1 ]; then
             configure_system;_system_is_configured=1
            else
             echo "$_forgotinstalling"
             read
            fi
        ;;
        "5")
            if [ "$_system_is_configured" == "1" ] || [ $SC_BYPASS = 1 ]; then
             install_bootloader
            else
             echo "$_forgotsystemconf"
             read
            fi
        ;;
        "6")
            echo ""
            echo "${_installationfinished}"
            echo ""
        break
        ;;
        *)
            if DIALOG --yesno "${_cancelinstall}" 6 40;then
             _umountall &>/dev/null ; exit 0
            fi
        ;;
    esac
}

installer_locale
DIALOG --msgbox "${_instwelcomemessage}" 12 65
while true; do
    mainmenu
done
bootloader_checker

exit 0
Пойдём на рыбалку !
Спасибо сказали:
Сергей12
Сообщения: 156

Re: Решено: Не устанавливается Archbang

Сообщение Сергей12 »

Скрипт сделал исполняемым, бросил а /arch.
Дать права root или оставить свои?
Сделать всё как раньше, только вместо abinstall запускать abi.sh?
Спасибо сказали:
Аватара пользователя
Женя Подсыпальников
Сообщения: 482

Re: Решено: Не устанавливается Archbang

Сообщение Женя Подсыпальников »

Дать права root
и запускать с надеждою, в свежем состоянии Lubuntu
(не после провала прежней инсталляции, но по перезагрузке) ! :)
Пойдём на рыбалку !
Спасибо сказали:
Сергей12
Сообщения: 156

Re: Решено: Не устанавливается Archbang

Сообщение Сергей12 »

Скрипт запускается. Но не видит swap. (NONE)
На верное нужно создать.
Спасибо сказали:
Аватара пользователя
Женя Подсыпальников
Сообщения: 482

Re: Решено: Не устанавливается Archbang

Сообщение Женя Подсыпальников »

А в Disk Preparation - заходили ? (там в чёрное не треба, сразу в DONE)
Точки swap, / и /home - привязывали ? :)
Пойдём на рыбалку !
Спасибо сказали:
Ответить