better error handling installer + updated servers + more

This commit is contained in:
whoisYoges 2022-07-13 00:25:51 +05:45
parent 5649b95643
commit 8b920322ba
23 changed files with 1148 additions and 1193 deletions

View file

@ -3,5 +3,9 @@
mkinitcpio-nfs-utils
squashfs-tools
grub
vim
terminus-font
btrfs-progs
e2fsprogs
xfsprogs
f2fs-tools
artix-live-@initsys@

View file

@ -1,5 +1,5 @@
GRUB_DEFAULT="0"
GRUB_TIMEOUT="3"
GRUB_TIMEOUT="5"
GRUB_DISTRIBUTOR="Metis"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="net.ifnames=0"

View file

@ -101,18 +101,6 @@ Include = /etc/pacman.d/mirrorlist
#[lib32]
#Include = /etc/pacman.d/mirrorlist
### ARCH LINUX REPOS
## Be careful enabling arch liux core repos as it contains many systemd dependent packages which we don't use.
# [core]
# Include = /etc/pacman.d/arch-mirrorlist
[extra]
Include = /etc/pacman.d/arch-mirrorlist
[community]
Include = /etc/pacman.d/arch-mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]

View file

@ -1,614 +0,0 @@
### List of archlinux fast servers
Server = http://arch.lucassymons.net/$repo/os/$arch
Server = http://mirroir.labhouse.fr/arch/$repo/os/$arch
Server = http://mirror.metalgamer.eu/archlinux/$repo/os/$arch
Server = http://arch.yourlabs.org/$repo/os/$arch
Server = http://ftp.linux.org.tr/archlinux/$repo/os/$arch
Server = http://mirror.redrock.team/archlinux/$repo/os/$arch
Server = http://archlinux.uib.no/$repo/os/$arch
Server = http://archlinux.cu.be/$repo/os/$arch
Server = http://mirror.nw-sys.ru/archlinux/$repo/os/$arch
Server = http://mirror.isoc.org.il/pub/archlinux/$repo/os/$arch
Server = http://mirror.tiguinet.net/arch/$repo/os/$arch
Server = http://arch.softver.org.mk/archlinux/$repo/os/$arch
Server = https://mirrors.kernel.org/archlinux/$repo/os/$arch
Server = http://mirroir.wptheme.fr/archlinux/$repo/os/$arch
Server = http://mirror.onet.pl/pub/mirrors/archlinux/$repo/os/$arch
Server = http://ftp.ek-cer.hu/pub/mirrors/ftp.archlinux.org/$repo/os/$arch
Server = http://mirrors.kernel.org/archlinux/$repo/os/$arch
Server = https://mirrors.sjtug.sjtu.edu.cn/archlinux/$repo/os/$arch
Server = http://mirror.vpsfree.cz/archlinux/$repo/os/$arch
Server = https://mirror.redrock.team/archlinux/$repo/os/$arch
Server = http://mirror.ibcp.fr/pub/archlinux/$repo/os/$arch
Server = http://mirror.archlinux.ikoula.com/archlinux/$repo/os/$arch
Server = http://ftp.uni-hannover.de/archlinux/$repo/os/$arch
Server = http://mirror.efect.ro/archlinux/$repo/os/$arch
Server = http://mirror.ufscar.br/archlinux/$repo/os/$arch
Server = http://mirror.yandex.ru/archlinux/$repo/os/$arch
Server = http://arch.hu.fo/archlinux/$repo/os/$arch
Server = http://arch.jensgutermuth.de/$repo/os/$arch
Server = http://arch.midov.pl/arch/$repo/os/$arch
Server = http://arch.mirror.constant.com/$repo/os/$arch
Server = http://arch.mirror.far.fi/$repo/os/$arch
Server = http://arch.mirror.zachlge.org/$repo/os/$arch
Server = http://arch.mirrors.lavatech.top/$repo/os/$arch
Server = http://arch.mithril.re/$repo/os/$arch
Server = http://arch.nimukaito.net/$repo/os/$arch
Server = http://arch.tux.si/mirror/$repo/os/$arch
Server = http://arch.yhtez.xyz/$repo/os/$arch
Server = http://archimonde.ts.si/archlinux/$repo/os/$arch
Server = http://archlinux.astra.in.ua/$repo/os/$arch
Server = http://archlinux.c3sl.ufpr.br/$repo/os/$arch
Server = http://archlinux.ccns.ncku.edu.tw/archlinux/$repo/os/$arch
Server = http://archlinux.cs.nycu.edu.tw/$repo/os/$arch
Server = http://archlinux.datagr.am/$repo/os/$arch
Server = http://archlinux.grena.ge/$repo/os/$arch
Server = http://archlinux.honkgong.info/$repo/os/$arch
Server = http://archlinux.ip-connect.vn.ua/$repo/os/$arch
Server = http://archlinux.iskon.hr/$repo/os/$arch
Server = http://archlinux.koyanet.lv/archlinux/$repo/os/$arch
Server = http://archlinux.mailtunnel.eu/$repo/os/$arch
Server = http://archlinux.mirror.digitalpacific.com.au/$repo/os/$arch
Server = http://archlinux.mirror.iphh.net/$repo/os/$arch
Server = http://archlinux.mirror.kangaroot.net/$repo/os/$arch
Server = http://archlinux.mirror.liquidtelecom.com/$repo/os/$arch
Server = http://archlinux.mirror.liteserver.nl/$repo/os/$arch
Server = http://archlinux.mirror.luzea.de/$repo/os/$arch
Server = http://archlinux.mirror.pcextreme.nl/$repo/os/$arch
Server = http://archlinux.mirror.rafal.ca/$repo/os/$arch
Server = http://archlinux.mirror.root.lu/$repo/os/$arch
Server = http://archlinux.mirror.server24.net/$repo/os/$arch
Server = http://archlinux.mirror.wearetriple.com/$repo/os/$arch
Server = http://archlinux.mirrors.linux.ro/$repo/os/$arch
Server = http://archlinux.mirrors.ovh.net/archlinux/$repo/os/$arch
Server = http://archlinux.nautile.nc/archlinux/$repo/os/$arch
Server = http://archlinux.polymorf.fr/$repo/os/$arch
Server = http://archlinux.pop-es.rnp.br/$repo/os/$arch
Server = http://archlinux.qern-industries.pw/$repo/os/$arch
Server = http://archlinux.qontinuum.space/archlinux/$repo/os/$arch
Server = http://archlinux.rezopole.net/$repo/os/$arch
Server = http://archlinux.thaller.ws/$repo/os/$arch
Server = http://archlinux.uk.mirror.allworldit.com/archlinux/$repo/os/$arch
Server = http://archlinux.za.mirror.allworldit.com/archlinux/$repo/os/$arch
Server = http://archmirror.hbit.sztaki.hu/archlinux/$repo/os/$arch
Server = http://archmirror1.octyl.net/$repo/os/$arch
Server = http://arlm.tyzoid.com/$repo/os/$arch
Server = http://artfiles.org/archlinux.org/$repo/os/$arch
Server = http://br.mirror.archlinux-br.org/$repo/os/$arch
Server = http://codingflyboy.mm.fcix.net/archlinux/$repo/os/$arch
Server = http://coresite.mm.fcix.net/archlinux/$repo/os/$arch
Server = http://depo.turkiye.linux.web.tr/archlinux/$repo/os/$arch
Server = http://dfw.mirror.rackspace.com/archlinux/$repo/os/$arch
Server = http://distro.ibiblio.org/archlinux/$repo/os/$arch
Server = http://fastmirror.pp.ua/archlinux/$repo/os/$arch
Server = http://free.nchc.org.tw/arch/$repo/os/$arch
Server = http://ftp-stud.hs-esslingen.de/pub/Mirrors/archlinux/$repo/os/$arch
Server = http://ftp.acc.umu.se/mirror/archlinux/$repo/os/$arch
Server = http://ftp.agdsn.de/pub/mirrors/archlinux/$repo/os/$arch
Server = http://ftp.byfly.by/pub/archlinux/$repo/os/$arch
Server = http://ftp.cc.uoc.gr/mirrors/linux/archlinux/$repo/os/$arch
Server = http://ftp.fau.de/archlinux/$repo/os/$arch
Server = http://ftp.fi.muni.cz/pub/linux/arch/$repo/os/$arch
Server = http://ftp.gwdg.de/pub/linux/archlinux/$repo/os/$arch
Server = http://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch
Server = http://ftp.harukasan.org/archlinux/$repo/os/$arch
Server = http://ftp.heanet.ie/mirrors/ftp.archlinux.org/$repo/os/$arch
Server = http://ftp.hosteurope.de/mirror/ftp.archlinux.org/$repo/os/$arch
Server = http://ftp.icm.edu.pl/pub/Linux/dist/archlinux/$repo/os/$arch
Server = http://ftp.iinet.net.au/pub/archlinux/$repo/os/$arch
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
Server = http://ftp.lanet.kr/pub/archlinux/$repo/os/$arch
Server = http://ftp.linux.cz/pub/linux/arch/$repo/os/$arch
Server = http://ftp.lysator.liu.se/pub/archlinux/$repo/os/$arch
Server = http://ftp.myrveln.se/pub/linux/archlinux/$repo/os/$arch
Server = http://ftp.nluug.nl/os/Linux/distr/archlinux/$repo/os/$arch
Server = http://ftp.ntua.gr/pub/linux/archlinux/$repo/os/$arch
Server = http://ftp.osuosl.org/pub/archlinux/$repo/os/$arch
Server = http://ftp.otenet.gr/linux/archlinux/$repo/os/$arch
Server = http://ftp.psnc.pl/linux/archlinux/$repo/os/$arch
Server = http://ftp.rediris.es/mirror/archlinux/$repo/os/$arch
Server = http://ftp.rnl.tecnico.ulisboa.pt/pub/archlinux/$repo/os/$arch
Server = http://ftp.sh.cvut.cz/arch/$repo/os/$arch
Server = http://ftp.snt.utwente.nl/pub/os/linux/archlinux/$repo/os/$arch
Server = http://ftp.spline.inf.fu-berlin.de/mirrors/archlinux/$repo/os/$arch
Server = http://ftp.swin.edu.au/archlinux/$repo/os/$arch
Server = http://ftp.tku.edu.tw/Linux/ArchLinux/$repo/os/$arch
Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch
Server = http://ftp.tu-chemnitz.de/pub/linux/archlinux/$repo/os/$arch
Server = http://ftp.u-strasbg.fr/linux/distributions/archlinux/$repo/os/$arch
Server = http://ftp.uni-bayreuth.de/linux/archlinux/$repo/os/$arch
Server = http://ftp.uni-kl.de/pub/linux/archlinux/$repo/os/$arch
Server = http://ftp.vectranet.pl/archlinux/$repo/os/$arch
Server = http://ftp.wrz.de/pub/archlinux/$repo/os/$arch
Server = http://ftpmirror.infania.net/mirror/archlinux/$repo/os/$arch
Server = http://glua.ua.pt/pub/archlinux/$repo/os/$arch
Server = http://gluttony.sin.cvut.cz/arch/$repo/os/$arch
Server = http://hkg.mirror.rackspace.com/archlinux/$repo/os/$arch
Server = http://iad.mirror.rackspace.com/archlinux/$repo/os/$arch
Server = http://iad.mirrors.misaka.one/archlinux/$repo/os/$arch
Server = http://il.us.mirror.archlinux-br.org/$repo/os/$arch
Server = http://in-mirror.garudalinux.org/archlinux/$repo/os/$arch
Server = http://kebo.pens.ac.id/archlinux/$repo/os/$arch
Server = http://linorg.usp.br/archlinux/$repo/os/$arch
Server = http://linux.rz.rub.de/archlinux/$repo/os/$arch
Server = http://lon.mirror.rackspace.com/archlinux/$repo/os/$arch
Server = http://mir.archlinux.fr/$repo/os/$arch
Server = http://mirror-hk.koddos.net/archlinux/$repo/os/$arch
Server = http://mirror.0xem.ma/arch/$repo/os/$arch
Server = http://mirror.23m.com/archlinux/$repo/os/$arch
Server = http://mirror.2degrees.nz/archlinux/$repo/os/$arch
Server = http://mirror.aktkn.sg/archlinux/$repo/os/$arch
Server = http://mirror.alwyzon.net/archlinux/$repo/os/$arch
Server = http://mirror.ams1.nl.leaseweb.net/archlinux/$repo/os/$arch
Server = http://mirror.anigil.com/archlinux/$repo/os/$arch
Server = http://mirror.anquan.cl/archlinux/$repo/os/$arch
Server = http://mirror.archlinux.cl/$repo/os/$arch
Server = http://mirror.archlinux.no/$repo/os/$arch
Server = http://mirror.archlinux.tw/ArchLinux/$repo/os/$arch
Server = http://mirror.arizona.edu/archlinux/$repo/os/$arch
Server = http://mirror.arvancloud.com/archlinux/$repo/os/$arch
Server = http://mirror.bardia.tech/archlinux/$repo/os/$arch
Server = http://mirror.bizflycloud.vn/archlinux/$repo/os/$arch
Server = http://mirror.bytemark.co.uk/archlinux/$repo/os/$arch
Server = http://mirror.cedia.org.ec/archlinux/$repo/os/$arch
Server = http://mirror.cedille.club/archlinux/$repo/os/$arch
Server = http://mirror.chaoticum.net/arch/$repo/os/$arch
Server = http://mirror.checkdomain.de/archlinux/$repo/os/$arch
Server = http://mirror.cj2.nl/archlinux/$repo/os/$arch
Server = http://mirror.clarkson.edu/archlinux/$repo/os/$arch
Server = http://mirror.clientvps.com/archlinux/$repo/os/$arch
Server = http://mirror.cloudweeb.com/archlinux/$repo/os/$arch
Server = http://mirror.cov.ukservers.com/archlinux/$repo/os/$arch
Server = http://mirror.cs.pitt.edu/archlinux/$repo/os/$arch
Server = http://mirror.cs.vt.edu/pub/ArchLinux/$repo/os/$arch
Server = http://mirror.csclub.uwaterloo.ca/archlinux/$repo/os/$arch
Server = http://mirror.cspacehostings.com/archlinux/$repo/os/$arch
Server = http://mirror.cyberbits.eu/archlinux/$repo/os/$arch
Server = http://mirror.datacenter.by/pub/archlinux/$repo/os/$arch
Server = http://mirror.dc.uz/arch/$repo/os/$arch
Server = http://mirror.digitalnova.at/archlinux/$repo/os/$arch
Server = http://mirror.dkm.cz/archlinux/$repo/os/$arch
Server = http://mirror.easyname.at/archlinux/$repo/os/$arch
Server = http://mirror.ette.biz/archlinux/$repo/os/$arch
Server = http://mirror.f4st.host/archlinux/$repo/os/$arch
Server = http://mirror.faizuladib.com/archlinux/$repo/os/$arch
Server = http://mirror.fcix.net/archlinux/$repo/os/$arch
Server = http://mirror.flokinet.net/archlinux/$repo/os/$arch
Server = http://mirror.fra10.de.leaseweb.net/archlinux/$repo/os/$arch
Server = http://mirror.fsmg.org.nz/archlinux/$repo/os/$arch
Server = http://mirror.fsrv.services/archlinux/$repo/os/$arch
Server = http://mirror.funami.tech/arch/$repo/os/$arch
Server = http://mirror.guillaumea.fr/archlinux/$repo/os/$arch
Server = http://mirror.hackingand.coffee/arch/$repo/os/$arch
Server = http://mirror.host.ag/archlinux/$repo/os/$arch
Server = http://mirror.hosthink.net/archlinux/$repo/os/$arch
Server = http://mirror.hostiran.ir/archlinux/$repo/os/$arch
Server = http://mirror.ihost.md/archlinux/$repo/os/$arch
Server = http://mirror.informatik.tu-freiberg.de/arch/$repo/os/$arch
Server = http://mirror.init7.net/archlinux/$repo/os/$arch
Server = http://mirror.internode.on.net/pub/archlinux/$repo/os/$arch
Server = http://mirror.is.co.za/mirror/archlinux.org/$repo/os/$arch
Server = http://mirror.its.dal.ca/archlinux/$repo/os/$arch
Server = http://mirror.jaime.sh/archlinux/$repo/os/$arch
Server = http://mirror.jingk.ai/archlinux/$repo/os/$arch
Server = http://mirror.juniorjpdj.pl/archlinux/$repo/os/$arch
Server = http://mirror.kamtv.ru/archlinux/$repo/os/$arch
Server = http://mirror.kku.ac.th/archlinux/$repo/os/$arch
Server = http://mirror.koddos.net/archlinux/$repo/os/$arch
Server = http://mirror.kumi.systems/archlinux/$repo/os/$arch
Server = http://mirror.labkom.id/archlinux/$repo/os/$arch
Server = http://mirror.lagoon.nc/pub/archlinux/$repo/os/$arch
Server = http://mirror.lastmikoi.net/archlinux/$repo/os/$arch
Server = http://mirror.librelabucm.org/archlinux/$repo/os/$arch
Server = http://mirror.lnx.sk/pub/linux/archlinux/$repo/os/$arch
Server = http://mirror.lty.me/archlinux/$repo/os/$arch
Server = http://mirror.lyrahosting.com/archlinux/$repo/os/$arch
Server = http://mirror.lzu.edu.cn/archlinux/$repo/os/$arch
Server = http://mirror.mangohost.net/archlinux/$repo/os/$arch
Server = http://mirror.math.princeton.edu/pub/archlinux/$repo/os/$arch
Server = http://mirror.metrocast.net/archlinux/$repo/os/$arch
Server = http://mirror.mijn.host/archlinux/$repo/os/$arch
Server = http://mirror.mikrogravitation.org/archlinux/$repo/os/$arch
Server = http://mirror.mirohost.net/archlinux/$repo/os/$arch
Server = http://mirror.misakamikoto.network/archlinux/$repo/os/$arch
Server = http://mirror.moson.org/arch/$repo/os/$arch
Server = http://mirror.netcologne.de/archlinux/$repo/os/$arch
Server = http://mirror.netweaver.uk/archlinux/$repo/os/$arch
Server = http://mirror.neuf.no/archlinux/$repo/os/$arch
Server = http://mirror.one.com/archlinux/$repo/os/$arch
Server = http://mirror.onevip.mk/archlinux/$repo/os/$arch
Server = http://mirror.pagenotfound.de/archlinux/$repo/os/$arch
Server = http://mirror.phx1.us.spryservers.net/archlinux/$repo/os/$arch
Server = http://mirror.pit.teraswitch.com/archlinux/$repo/os/$arch
Server = http://mirror.pmf.kg.ac.rs/archlinux/$repo/os/$arch
Server = http://mirror.powerfly.ca/archlinux/$repo/os/$arch
Server = http://mirror.premi.st/archlinux/$repo/os/$arch
Server = http://mirror.ps.kz/archlinux/$repo/os/$arch
Server = http://mirror.puzzle.ch/archlinux/$repo/os/$arch
Server = http://mirror.rackspace.com/archlinux/$repo/os/$arch
Server = http://mirror.repository.id/archlinux/$repo/os/$arch
Server = http://mirror.sabay.com.kh/archlinux/$repo/os/$arch
Server = http://mirror.sahil.world/archlinux/$repo/os/$arch
Server = http://mirror.scd31.com/arch/$repo/os/$arch
Server = http://mirror.selfnet.de/archlinux/$repo/os/$arch
Server = http://mirror.sergal.org/archlinux/$repo/os/$arch
Server = http://mirror.serverion.com/archlinux/$repo/os/$arch
Server = http://mirror.sfo12.us.leaseweb.net/archlinux/$repo/os/$arch
Server = http://mirror.sg.gs/archlinux/$repo/os/$arch
Server = http://mirror.siena.edu/archlinux/$repo/os/$arch
Server = http://mirror.stephen304.com/archlinux/$repo/os/$arch
Server = http://mirror.surf/archlinux/$repo/os/$arch
Server = http://mirror.system.is/arch/$repo/os/$arch
Server = http://mirror.t-home.mk/archlinux/$repo/os/$arch
Server = http://mirror.telepoint.bg/archlinux/$repo/os/$arch
Server = http://mirror.telkomuniversity.ac.id/archlinux/$repo/os/$arch
Server = http://mirror.terrahost.no/linux/archlinux/$repo/os/$arch
Server = http://mirror.theo546.fr/archlinux/$repo/os/$arch
Server = http://mirror.truenetwork.ru/archlinux/$repo/os/$arch
Server = http://mirror.ubrco.de/archlinux/$repo/os/$arch
Server = http://mirror.ufam.edu.br/archlinux/$repo/os/$arch
Server = http://mirror.ufro.cl/archlinux/$repo/os/$arch
Server = http://mirror.umd.edu/archlinux/$repo/os/$arch
Server = http://mirror.united-gameserver.de/archlinux/$repo/os/$arch
Server = http://mirror.uta.edu.ec/archlinux/$repo/os/$arch
Server = http://mirror.vtti.vt.edu/archlinux/$repo/os/$arch
Server = http://mirror.wdc1.us.leaseweb.net/archlinux/$repo/os/$arch
Server = http://mirror.wtnet.de/archlinux/$repo/os/$arch
Server = http://mirror.wuki.li/archlinux/$repo/os/$arch
Server = http://mirror.xenyth.net/archlinux/$repo/os/$arch
Server = http://mirror.xeonbd.com/archlinux/$repo/os/$arch
Server = http://mirror.xtom.com.hk/archlinux/$repo/os/$arch
Server = http://mirror2.evolution-host.com/archlinux/$repo/os/$arch
Server = http://mirror2.totbb.net/archlinux/$repo/os/$arch
Server = http://mirrors.163.com/archlinux/$repo/os/$arch
Server = http://mirrors.acm.wpi.edu/archlinux/$repo/os/$arch
Server = http://mirrors.advancedhosters.com/archlinux/$repo/os/$arch
Server = http://mirrors.aggregate.org/archlinux/$repo/os/$arch
Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch
Server = http://mirrors.atviras.lt/archlinux/$repo/os/$arch
Server = http://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.bloomu.edu/archlinux/$repo/os/$arch
Server = http://mirrors.cat.net/archlinux/$repo/os/$arch
Server = http://mirrors.cat.pdx.edu/archlinux/$repo/os/$arch
Server = http://mirrors.celianvdb.fr/archlinux/$repo/os/$arch
Server = http://mirrors.chroot.ro/archlinux/$repo/os/$arch
Server = http://mirrors.cqu.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.dotsrc.org/archlinux/$repo/os/$arch
Server = http://mirrors.gandi.net/archlinux/$repo/os/$arch
Server = http://mirrors.gigenet.com/archlinux/$repo/os/$arch
Server = http://mirrors.hit.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.hostico.ro/archlinux/$repo/os/$arch
Server = http://mirrors.janbruckner.de/archlinux/$repo/os/$arch
Server = http://mirrors.lug.mtu.edu/archlinux/$repo/os/$arch
Server = http://mirrors.manchester.m247.com/arch-linux/$repo/os/$arch
Server = http://mirrors.melbourne.co.uk/archlinux/$repo/os/$arch
Server = http://mirrors.mit.edu/archlinux/$repo/os/$arch
Server = http://mirrors.n-ix.net/archlinux/$repo/os/$arch
Server = http://mirrors.nav.ro/archlinux/$repo/os/$arch
Server = http://mirrors.netix.net/archlinux/$repo/os/$arch
Server = http://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.nic.cz/archlinux/$repo/os/$arch
Server = http://mirrors.niyawe.de/archlinux/$repo/os/$arch
Server = http://mirrors.nju.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.nxtgen.com/archlinux-mirror/$repo/os/$arch
Server = http://mirrors.nxthost.com/archlinux/$repo/os/$arch
Server = http://mirrors.ocf.berkeley.edu/archlinux/$repo/os/$arch
Server = http://mirrors.piconets.webwerks.in/archlinux-mirror/$repo/os/$arch
Server = http://mirrors.pidginhost.com/arch/$repo/os/$arch
Server = http://mirrors.powernet.com.ru/archlinux/$repo/os/$arch
Server = http://mirrors.radwebhosting.com/archlinux/$repo/os/$arch
Server = http://mirrors.rit.edu/archlinux/$repo/os/$arch
Server = http://mirrors.rutgers.edu/archlinux/$repo/os/$arch
Server = http://mirrors.shanghaitech.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.sonic.net/archlinux/$repo/os/$arch
Server = http://mirrors.standaloneinstaller.com/archlinux/$repo/os/$arch
Server = http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.udenar.edu.co/archlinux/$repo/os/$arch
Server = http://mirrors.uni-plovdiv.net/archlinux/$repo/os/$arch
Server = http://mirrors.up.pt/pub/archlinux/$repo/os/$arch
Server = http://mirrors.urbanwave.co.za/archlinux/$repo/os/$arch
Server = http://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.vectair.net/archlinux/$repo/os/$arch
Server = http://mirrors.wale.id.au/archlinux/$repo/os/$arch
Server = http://mirrors.wsyu.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.xmission.com/archlinux/$repo/os/$arch
Server = http://mirrors.xtom.com/archlinux/$repo/os/$arch
Server = http://mirrors.xtom.de/archlinux/$repo/os/$arch
Server = http://mirrors.xtom.ee/archlinux/$repo/os/$arch
Server = http://mirrors.xtom.nl/archlinux/$repo/os/$arch
Server = http://mirrors.zju.edu.cn/archlinux/$repo/os/$arch
Server = http://mnvoip.mm.fcix.net/archlinux/$repo/os/$arch
Server = http://muug.ca/mirror/archlinux/$repo/os/$arch
Server = http://nova.quantum-mirror.hu/mirrors/pub/archlinux/$repo/os/$arch
Server = http://ord.mirror.rackspace.com/archlinux/$repo/os/$arch
Server = http://os.codefionn.eu/archlinux/$repo/os/$arch
Server = http://ossmirror.mycloud.services/os/linux/archlinux/$repo/os/$arch
Server = http://packages.oth-regensburg.de/archlinux/$repo/os/$arch
Server = http://phinau.de/arch/$repo/os/$arch
Server = http://pkg.adfinis.com/archlinux/$repo/os/$arch
Server = http://plug-mirror.rcac.purdue.edu/archlinux/$repo/os/$arch
Server = http://quantum-mirror.hu/mirrors/pub/archlinux/$repo/os/$arch
Server = http://repo.endpoint.ml/archlinux/$repo/os/$arch
Server = http://repo.ialab.dsu.edu/archlinux/$repo/os/$arch
Server = http://repo.iut.ac.ir/repo/archlinux/$repo/os/$arch
Server = http://repo.miserver.it.umich.edu/archlinux/$repo/os/$arch
Server = http://repo.skni.umcs.pl/archlinux/$repo/os/$arch
Server = http://ridgewireless.mm.fcix.net/archlinux/$repo/os/$arch
Server = http://shadow.ind.ntou.edu.tw/archlinux/$repo/os/$arch
Server = http://super.quantum-mirror.hu/mirrors/pub/archlinux/$repo/os/$arch
Server = http://syd.mirror.rackspace.com/archlinux/$repo/os/$arch
Server = http://tux.rainside.sk/archlinux/$repo/os/$arch
Server = http://vpsmurah.jagoanhosting.com/archlinux/$repo/os/$arch
Server = http://www.gtlib.gatech.edu/pub/archlinux/$repo/os/$arch
Server = http://www.mirrorservice.org/sites/ftp.archlinux.org/$repo/os/$arch
Server = http://za.mirror.archlinux-br.org/$repo/os/$arch
Server = https://america.mirror.pkgbuild.com/$repo/os/$arch
Server = https://appuals.com/archlinux/$repo/os/$arch
Server = https://arch-mirror.wtako.net/$repo/os/$arch
Server = https://arch.hu.fo/archlinux/$repo/os/$arch
Server = https://arch.jensgutermuth.de/$repo/os/$arch
Server = https://arch.jsc.mx/$repo/os/$arch
Server = https://arch.juline.tech/$repo/os/$arch
Server = https://arch.lucassymons.net/$repo/os/$arch
Server = https://arch.midov.pl/arch/$repo/os/$arch
Server = https://arch.mirror.constant.com/$repo/os/$arch
Server = https://arch.mirror.ivo.st/$repo/os/$arch
Server = https://arch.mirror.zachlge.org/$repo/os/$arch
Server = https://arch.mirrors.lavatech.top/$repo/os/$arch
Server = https://arch.tux.si/mirror/$repo/os/$arch
Server = https://arch.unixpeople.org/$repo/os/$arch
Server = https://arch.yhtez.xyz/$repo/os/$arch
Server = https://arch.yourlabs.org/$repo/os/$arch
Server = https://archimonde.ts.si/archlinux/$repo/os/$arch
Server = https://archlinux.astra.in.ua/$repo/os/$arch
Server = https://archlinux.cs.nycu.edu.tw/$repo/os/$arch
Server = https://archlinux.grena.ge/$repo/os/$arch
Server = https://archlinux.homeinfo.de/$repo/os/$arch
Server = https://archlinux.ip-connect.vn.ua/$repo/os/$arch
Server = https://archlinux.koyanet.lv/archlinux/$repo/os/$arch
Server = https://archlinux.mailtunnel.eu/$repo/os/$arch
Server = https://archlinux.mirror.digitalpacific.com.au/$repo/os/$arch
Server = https://archlinux.mirror.liquidtelecom.com/$repo/os/$arch
Server = https://archlinux.mirror.liteserver.nl/$repo/os/$arch
Server = https://archlinux.mirror.luzea.de/$repo/os/$arch
Server = https://archlinux.mirror.pcextreme.nl/$repo/os/$arch
Server = https://archlinux.mirror.server24.net/$repo/os/$arch
Server = https://archlinux.mirror.wearetriple.com/$repo/os/$arch
Server = https://archlinux.mivzakim.net/$repo/os/$arch
Server = https://archlinux.nautile.nc/archlinux/$repo/os/$arch
Server = https://archlinux.ourhome.kiwi/$repo/os/$arch
Server = https://archlinux.qern-industries.pw/$repo/os/$arch
Server = https://archlinux.qontinuum.space/archlinux/$repo/os/$arch
Server = https://archlinux.thaller.ws/$repo/os/$arch
Server = https://archlinux.uk.mirror.allworldit.com/archlinux/$repo/os/$arch
Server = https://archlinux.za.mirror.allworldit.com/archlinux/$repo/os/$arch
Server = https://archmirror.akhl.in/$repo/os/$arch
Server = https://archmirror.it/repos/$repo/os/$arch
Server = https://archmirror1.octyl.net/$repo/os/$arch
Server = https://arlm.tyzoid.com/$repo/os/$arch
Server = https://at.arch.mirror.kescher.at/$repo/os/$arch
Server = https://codingflyboy.mm.fcix.net/archlinux/$repo/os/$arch
Server = https://coresite.mm.fcix.net/archlinux/$repo/os/$arch
Server = https://de.arch.mirror.kescher.at/$repo/os/$arch
Server = https://depo.turkiye.linux.web.tr/archlinux/$repo/os/$arch
Server = https://dfw.mirror.rackspace.com/archlinux/$repo/os/$arch
Server = https://dist-mirror.fem.tu-ilmenau.de/archlinux/$repo/os/$arch
Server = https://download.nus.edu.sg/mirror/archlinux/$repo/os/$arch
Server = https://europe.mirror.pkgbuild.com/$repo/os/$arch
Server = https://fastmirror.pp.ua/archlinux/$repo/os/$arch
Server = https://free.nchc.org.tw/arch/$repo/os/$arch
Server = https://ftp.acc.umu.se/mirror/archlinux/$repo/os/$arch
Server = https://ftp.agdsn.de/pub/mirrors/archlinux/$repo/os/$arch
Server = https://ftp.fau.de/archlinux/$repo/os/$arch
Server = https://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch
Server = https://ftp.harukasan.org/archlinux/$repo/os/$arch
Server = https://ftp.heanet.ie/mirrors/ftp.archlinux.org/$repo/os/$arch
Server = https://ftp.icm.edu.pl/pub/Linux/dist/archlinux/$repo/os/$arch
Server = https://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
Server = https://ftp.lanet.kr/pub/archlinux/$repo/os/$arch
Server = https://ftp.ludd.ltu.se/mirrors/archlinux/$repo/os/$arch
Server = https://ftp.lysator.liu.se/pub/archlinux/$repo/os/$arch
Server = https://ftp.myrveln.se/pub/linux/archlinux/$repo/os/$arch
Server = https://ftp.psnc.pl/linux/archlinux/$repo/os/$arch
Server = https://ftp.rnl.tecnico.ulisboa.pt/pub/archlinux/$repo/os/$arch
Server = https://ftp.sh.cvut.cz/arch/$repo/os/$arch
Server = https://ftp.spline.inf.fu-berlin.de/mirrors/archlinux/$repo/os/$arch
Server = https://ftp.wrz.de/pub/archlinux/$repo/os/$arch
Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch
Server = https://glua.ua.pt/pub/archlinux/$repo/os/$arch
Server = https://gluttony.sin.cvut.cz/arch/$repo/os/$arch
Server = https://hkg.mirror.rackspace.com/archlinux/$repo/os/$arch
Server = https://iad.mirror.rackspace.com/archlinux/$repo/os/$arch
Server = https://iad.mirrors.misaka.one/archlinux/$repo/os/$arch
Server = https://in-mirror.garudalinux.org/archlinux/$repo/os/$arch
Server = https://lon.mirror.rackspace.com/archlinux/$repo/os/$arch
Server = https://mirroir.labhouse.fr/arch/$repo/os/$arch
Server = https://mirroir.wptheme.fr/archlinux/$repo/os/$arch
Server = https://mirror-hk.koddos.net/archlinux/$repo/os/$arch
Server = https://mirror.0xem.ma/arch/$repo/os/$arch
Server = https://mirror.23m.com/archlinux/$repo/os/$arch
Server = https://mirror.2degrees.nz/archlinux/$repo/os/$arch
Server = https://mirror.aarnet.edu.au/pub/archlinux/$repo/os/$arch
Server = https://mirror.aktkn.sg/archlinux/$repo/os/$arch
Server = https://mirror.alwyzon.net/archlinux/$repo/os/$arch
Server = https://mirror.ams1.nl.leaseweb.net/archlinux/$repo/os/$arch
Server = https://mirror.anigil.com/archlinux/$repo/os/$arch
Server = https://mirror.anquan.cl/archlinux/$repo/os/$arch
Server = https://mirror.archlinux.no/$repo/os/$arch
Server = https://mirror.archlinux.tw/ArchLinux/$repo/os/$arch
Server = https://mirror.arizona.edu/archlinux/$repo/os/$arch
Server = https://mirror.arvancloud.com/archlinux/$repo/os/$arch
Server = https://mirror.bardia.tech/archlinux/$repo/os/$arch
Server = https://mirror.bethselamin.de/$repo/os/$arch
Server = https://mirror.bytemark.co.uk/archlinux/$repo/os/$arch
Server = https://mirror.chaoticum.net/arch/$repo/os/$arch
Server = https://mirror.checkdomain.de/archlinux/$repo/os/$arch
Server = https://mirror.cj2.nl/archlinux/$repo/os/$arch
Server = https://mirror.clarkson.edu/archlinux/$repo/os/$arch
Server = https://mirror.clientvps.com/archlinux/$repo/os/$arch
Server = https://mirror.cov.ukservers.com/archlinux/$repo/os/$arch
Server = https://mirror.csclub.uwaterloo.ca/archlinux/$repo/os/$arch
Server = https://mirror.cspacehostings.com/archlinux/$repo/os/$arch
Server = https://mirror.cyberbits.asia/archlinux/$repo/os/$arch
Server = https://mirror.cyberbits.eu/archlinux/$repo/os/$arch
Server = https://mirror.dc.uz/arch/$repo/os/$arch
Server = https://mirror.dkm.cz/archlinux/$repo/os/$arch
Server = https://mirror.dogado.de/archlinux/$repo/os/$arch
Server = https://mirror.efect.ro/archlinux/$repo/os/$arch
Server = https://mirror.eloteam.tk/archlinux/$repo/os/$arch
Server = https://mirror.ette.biz/archlinux/$repo/os/$arch
Server = https://mirror.f4st.host/archlinux/$repo/os/$arch
Server = https://mirror.fcix.net/archlinux/$repo/os/$arch
Server = https://mirror.flokinet.net/archlinux/$repo/os/$arch
Server = https://mirror.fra10.de.leaseweb.net/archlinux/$repo/os/$arch
Server = https://mirror.fsmg.org.nz/archlinux/$repo/os/$arch
Server = https://mirror.fsrv.services/archlinux/$repo/os/$arch
Server = https://mirror.funami.tech/arch/$repo/os/$arch
Server = https://mirror.gnomus.de/$repo/os/$arch
Server = https://mirror.guillaumea.fr/archlinux/$repo/os/$arch
Server = https://mirror.hackingand.coffee/arch/$repo/os/$arch
Server = https://mirror.hostiran.ir/archlinux/$repo/os/$arch
Server = https://mirror.ibakerserver.pt/Arch/$repo/os/$arch
Server = https://mirror.ihost.md/archlinux/$repo/os/$arch
Server = https://mirror.informatik.tu-freiberg.de/arch/$repo/os/$arch
Server = https://mirror.init7.net/archlinux/$repo/os/$arch
Server = https://mirror.isoc.org.il/pub/archlinux/$repo/os/$arch
Server = https://mirror.iusearchbtw.nl/$repo/os/$arch
Server = https://mirror.jaime.sh/archlinux/$repo/os/$arch
Server = https://mirror.jingk.ai/archlinux/$repo/os/$arch
Server = https://mirror.juniorjpdj.pl/archlinux/$repo/os/$arch
Server = https://mirror.kamtv.ru/archlinux/$repo/os/$arch
Server = https://mirror.kku.ac.th/archlinux/$repo/os/$arch
Server = https://mirror.koddos.net/archlinux/$repo/os/$arch
Server = https://mirror.kumi.systems/archlinux/$repo/os/$arch
Server = https://mirror.librelabucm.org/archlinux/$repo/os/$arch
Server = https://mirror.lnx.sk/pub/linux/archlinux/$repo/os/$arch
Server = https://mirror.lty.me/archlinux/$repo/os/$arch
Server = https://mirror.lyrahosting.com/archlinux/$repo/os/$arch
Server = https://mirror.mangohost.net/archlinux/$repo/os/$arch
Server = https://mirror.metalgamer.eu/archlinux/$repo/os/$arch
Server = https://mirror.mijn.host/archlinux/$repo/os/$arch
Server = https://mirror.mikrogravitation.org/archlinux/$repo/os/$arch
Server = https://mirror.mirohost.net/archlinux/$repo/os/$arch
Server = https://mirror.misakamikoto.network/archlinux/$repo/os/$arch
Server = https://mirror.moson.org/arch/$repo/os/$arch
Server = https://mirror.netcologne.de/archlinux/$repo/os/$arch
Server = https://mirror.netweaver.uk/archlinux/$repo/os/$arch
Server = https://mirror.neuf.no/archlinux/$repo/os/$arch
Server = https://mirror.nw-sys.ru/archlinux/$repo/os/$arch
Server = https://mirror.one.com/archlinux/$repo/os/$arch
Server = https://mirror.osbeck.com/archlinux/$repo/os/$arch
Server = https://mirror.pagenotfound.de/archlinux/$repo/os/$arch
Server = https://mirror.phx1.us.spryservers.net/archlinux/$repo/os/$arch
Server = https://mirror.pit.teraswitch.com/archlinux/$repo/os/$arch
Server = https://mirror.powerfly.ca/archlinux/$repo/os/$arch
Server = https://mirror.premi.st/archlinux/$repo/os/$arch
Server = https://mirror.ps.kz/archlinux/$repo/os/$arch
Server = https://mirror.pseudoform.org/$repo/os/$arch
Server = https://mirror.puzzle.ch/archlinux/$repo/os/$arch
Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch
Server = https://mirror.repository.id/archlinux/$repo/os/$arch
Server = https://mirror.sabay.com.kh/archlinux/$repo/os/$arch
Server = https://mirror.safe-con.dk/archlinux/$repo/os/$arch
Server = https://mirror.sahil.world/archlinux/$repo/os/$arch
Server = https://mirror.scd31.com/arch/$repo/os/$arch
Server = https://mirror.selfnet.de/archlinux/$repo/os/$arch
Server = https://mirror.sergal.org/archlinux/$repo/os/$arch
Server = https://mirror.serverion.com/archlinux/$repo/os/$arch
Server = https://mirror.sfo12.us.leaseweb.net/archlinux/$repo/os/$arch
Server = https://mirror.sg.gs/archlinux/$repo/os/$arch
Server = https://mirror.srv.fail/archlinux/$repo/os/$arch
Server = https://mirror.stephen304.com/archlinux/$repo/os/$arch
Server = https://mirror.surf/archlinux/$repo/os/$arch
Server = https://mirror.sysa.tech/archlinux/$repo/os/$arch
Server = https://mirror.t-home.mk/archlinux/$repo/os/$arch
Server = https://mirror.telepoint.bg/archlinux/$repo/os/$arch
Server = https://mirror.telkomuniversity.ac.id/archlinux/$repo/os/$arch
Server = https://mirror.theash.xyz/arch/$repo/os/$arch
Server = https://mirror.thekinrar.fr/archlinux/$repo/os/$arch
Server = https://mirror.theo546.fr/archlinux/$repo/os/$arch
Server = https://mirror.tmmworkshop.com/archlinux/$repo/os/$arch
Server = https://mirror.truenetwork.ru/archlinux/$repo/os/$arch
Server = https://mirror.ubrco.de/archlinux/$repo/os/$arch
Server = https://mirror.ufro.cl/archlinux/$repo/os/$arch
Server = https://mirror.umd.edu/archlinux/$repo/os/$arch
Server = https://mirror.ungleich.ch/mirror/packages/archlinux/$repo/os/$arch
Server = https://mirror.wdc1.us.leaseweb.net/archlinux/$repo/os/$arch
Server = https://mirror.wormhole.eu/archlinux/$repo/os/$arch
Server = https://mirror.wtnet.de/archlinux/$repo/os/$arch
Server = https://mirror.wuki.li/archlinux/$repo/os/$arch
Server = https://mirror.xenyth.net/archlinux/$repo/os/$arch
Server = https://mirror.xtom.com.hk/archlinux/$repo/os/$arch
Server = https://mirror.yandex.ru/archlinux/$repo/os/$arch
Server = https://mirror2.evolution-host.com/archlinux/$repo/os/$arch
Server = https://mirror2.sandyriver.net/pub/archlinux/$repo/os/$arch
Server = https://mirrors.42tm.tech/archlinux/$repo/os/$arch
Server = https://mirrors.aliyun.com/archlinux/$repo/os/$arch
Server = https://mirrors.atviras.lt/archlinux/$repo/os/$arch
Server = https://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.bloomu.edu/archlinux/$repo/os/$arch
Server = https://mirrors.cat.net/archlinux/$repo/os/$arch
Server = https://mirrors.celianvdb.fr/archlinux/$repo/os/$arch
Server = https://mirrors.chroot.ro/archlinux/$repo/os/$arch
Server = https://mirrors.cqu.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.dotsrc.org/archlinux/$repo/os/$arch
Server = https://mirrors.eric.ovh/arch/$repo/os/$arch
Server = https://mirrors.gandi.net/archlinux/$repo/os/$arch
Server = https://mirrors.hit.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.hostico.ro/archlinux/$repo/os/$arch
Server = https://mirrors.janbruckner.de/archlinux/$repo/os/$arch
Server = https://mirrors.lug.mtu.edu/archlinux/$repo/os/$arch
Server = https://mirrors.melbourne.co.uk/archlinux/$repo/os/$arch
Server = https://mirrors.mit.edu/archlinux/$repo/os/$arch
Server = https://mirrors.n-ix.net/archlinux/$repo/os/$arch
Server = https://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.niyawe.de/archlinux/$repo/os/$arch
Server = https://mirrors.nju.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.njupt.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.nxtgen.com/archlinux-mirror/$repo/os/$arch
Server = https://mirrors.nxthost.com/archlinux/$repo/os/$arch
Server = https://mirrors.ocf.berkeley.edu/archlinux/$repo/os/$arch
Server = https://mirrors.piconets.webwerks.in/archlinux-mirror/$repo/os/$arch
Server = https://mirrors.pidginhost.com/arch/$repo/os/$arch
Server = https://mirrors.radwebhosting.com/archlinux/$repo/os/$arch
Server = https://mirrors.rit.edu/archlinux/$repo/os/$arch
Server = https://mirrors.shanghaitech.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.slaanesh.org/archlinux/$repo/os/$arch
Server = https://mirrors.sonic.net/archlinux/$repo/os/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.uni-plovdiv.net/archlinux/$repo/os/$arch
Server = https://mirrors.up.pt/pub/archlinux/$repo/os/$arch
Server = https://mirrors.urbanwave.co.za/archlinux/$repo/os/$arch
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.vectair.net/archlinux/$repo/os/$arch
Server = https://mirrors.wale.id.au/archlinux/$repo/os/$arch
Server = https://mirrors.wsyu.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.xjtu.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.xtom.com/archlinux/$repo/os/$arch
Server = https://mirrors.xtom.de/archlinux/$repo/os/$arch
Server = https://mirrors.xtom.ee/archlinux/$repo/os/$arch
Server = https://mirrors.xtom.nl/archlinux/$repo/os/$arch
Server = https://mnvoip.mm.fcix.net/archlinux/$repo/os/$arch
Server = https://muug.ca/mirror/archlinux/$repo/os/$arch
Server = https://nova.quantum-mirror.hu/mirrors/pub/archlinux/$repo/os/$arch
Server = https://ord.mirror.rackspace.com/archlinux/$repo/os/$arch
Server = https://os.codefionn.eu/archlinux/$repo/os/$arch
Server = https://packages.oth-regensburg.de/archlinux/$repo/os/$arch
Server = https://phinau.de/arch/$repo/os/$arch
Server = https://pkg.adfinis.com/archlinux/$repo/os/$arch
Server = https://pkg.fef.moe/archlinux/$repo/os/$arch
Server = https://plug-mirror.rcac.purdue.edu/archlinux/$repo/os/$arch
Server = https://quantum-mirror.hu/mirrors/pub/archlinux/$repo/os/$arch
Server = https://repo.albony.xyz/$repo/os/$arch
Server = https://repo.endpoint.ml/archlinux/$repo/os/$arch
Server = https://repo.greeklug.gr/data/pub/linux/archlinux/$repo/os/$arch
Server = https://repo.ialab.dsu.edu/archlinux/$repo/os/$arch
Server = https://repo.skni.umcs.pl/archlinux/$repo/os/$arch
Server = https://ridgewireless.mm.fcix.net/archlinux/$repo/os/$arch
Server = https://shadow.ind.ntou.edu.tw/archlinux/$repo/os/$arch
Server = https://super.quantum-mirror.hu/mirrors/pub/archlinux/$repo/os/$arch
Server = https://syd.mirror.rackspace.com/archlinux/$repo/os/$arch
Server = https://theswissbay.ch/archlinux/$repo/os/$arch
Server = https://vpsmurah.jagoanhosting.com/archlinux/$repo/os/$arch
Server = https://www.mirrorservice.org/sites/ftp.archlinux.org/$repo/os/$arch
Server = https://zxcvfdsa.com/arch/$repo/os/$arch

View file

@ -1,42 +1,38 @@
###Server list for artix packages
Server = http://artist.artixlinux.org/repos/$repo/os/$arch
Server = http://mirrors.redcorelinux.org/artixlinux/$repo/os/$arch
Server = https://ftp.sh.cvut.cz/artix-linux/$repo/os/$arch
Server = https://ftp.crifo.org/artix/repos/$repo/os/$arch
Server = https://artix.cccp.io/$repo/os/$arch
Server = https://mirror.pascalpuffke.de/artix-linux/$repo/os/$arch
Server = https://mirrors.dotsrc.org/artix-linux/repos/$repo/os/$arch
Server = http://ftp.ntua.gr/pub/linux/artix-linux/$repo/os/$arch
Server = https://mirror.funami.tech/artix/$repo/os/$arch
Server = https://artixlinux.qontinuum.space/artixlinux/$repo/os/$arch
Server = https://eu-mirror.artixlinux.org/repos/$repo/os/$arch
Server = https://mirrors.aliyun.com/artixlinux/$repo/os/$arch
Server = https://mirror.clarkson.edu/artix-linux/repos/$repo/os/$arch
Server = https://mirror1.artixlinux.org/repos/$repo/os/$arch
Server = https://quantum-mirror.hu/mirrors/pub/artix-linux/$repo/os/$arch
Server = https://mirrors.rit.edu/artixlinux/$repo/os/$arch
Server = https://mirror.nju.edu.cn/artixlinux/$repo/os/$arch
Server = https://artix.wheaton.edu/repos/$repo/os/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/artixlinux/$repo/os/$arch
Server = http://www.nylxs.com/mirror/repos/$repo/os/$arch
Server = https://mirror.freedif.org/Artix/$repo/os/$arch
Server = https://mirrors.42tm.tech/artix-linux/$repo/os/$arch
Server = https://mirror1.cl.netactuate.com/artix/repos/$repo/os/$arch
Server = http://mirrors.redcorelinux.org/artixlinux/$repo/os/$arch
Server = https://mirror.freedif.org/Artix/$repo/os/$arch
Server = https://mirror.funami.tech/artix/$repo/os/$arch
Server = https://mirror.pascalpuffke.de/artix-linux/$repo/os/$arch
Server = https://mirror.clarkson.edu/artix-linux/repos/$repo/os/$arch
Server = https://mirror.linux.pizza/artix-linux/$repo/os/$arch
Server = https://ftp.halifax.rwth-aachen.de/artixlinux/$repo/os/$arch
Server = https://mirror1.artixlinux.org/repos/$repo/os/$arch
Server = https://eu-mirror.artixlinux.org/repos/$repo/os/$arch
Server = https://mirror.one.com/artix/$repo/os/$arch
Server = https://artix.unixpeople.org/repos/$repo/os/$arch
Server = https://artix.cccp.io/$repo/os/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/artixlinux/$repo/os/$arch
Server = https://mirrors.rit.edu/artixlinux/$repo/os/$arch
Server = https://mirrors.dotsrc.org/artix-linux/repos/$repo/os/$arch
Server = https://us-mirror.artixlinux.org/$repo/os/$arch
Server = https://mirrors.ocf.berkeley.edu/artix-linux/$repo/os/$arch
Server = https://mirrors.dotsrc.org/artix-linux/repos/$repo/os/$arch
Server = https://ftp.crifo.org/artix/repos/$repo/os/$arch
Server = https://ftp.cc.uoc.gr/mirrors/linux/artixlinux/$repo/os/$arch
Server = https://ftp.sh.cvut.cz/artix-linux/$repo/os/$arch
Server = http://www.nylxs.com/mirror/repos/$repo/os/$arch
Server = https://mirror1.cl.netactuate.com/artix/repos/$repo/os/$arch
Server = https://mirrors.aliyun.com/artixlinux/$repo/os/$arch
Server = https://mirror.csclub.uwaterloo.ca/artixlinux/$repo/os/$arch
Server = https://mirror.aarnet.edu.au/pub/artix/$repo/os/$arch
Server = https://quantum-mirror.hu/mirrors/pub/artix-linux/$repo/os/$arch
Server = https://mirror.nju.edu.cn/artixlinux/$repo/os/$arch
Server = https://mirror.netcologne.de/artix-linux/$repo/os/$arch
Server = https://mirrors.cloud.tencent.com/artixlinux/$repo/os/$arch
Server = https://mirror.clarkson.edu/artix-linux/repos/$repo/os/$arch
Server = http://ftp.ntua.gr/pub/linux/artix-linux/$repo/os/$arch
Server = https://us-mirror.artixlinux.org/$repo/os/$arch
Server = https://mirrors.dotsrc.org/artix-linux/repos/$repo/os/$arch
Server = https://ftp.cc.uoc.gr/mirrors/linux/artixlinux/$repo/os/$arch
Server = https://mirror.aarnet.edu.au/pub/artix/$repo/os/$arch
Server = https://mirror.csclub.uwaterloo.ca/artixlinux/$repo/os/$arch
Server = https://mirrors.ocf.berkeley.edu/artix-linux/$repo/os/$arch
Server = https://mirror.linux.pizza/artix-linux/$repo/os/$arch
Server = https://ftp.uni-bayreuth.de/linux/artix-linux/$repo/os/$arch
Server = https://artix.unixpeople.org/repos/$repo/os/$arch
Server = https://ftp.halifax.rwth-aachen.de/artixlinux/$repo/os/$arch
Server = https://artixlinux.qontinuum.space/artixlinux/$repo/os/$arch
Server = https://ftp.ludd.ltu.se/mirrors/artix/$repo/os/$arch
Server = http://ftp.ntua.gr/pub/linux/artix-linux/$repo/os/$arch
Server = https://artix.wheaton.edu/repos/$repo/os/$arch
Server = https://ftp.uni-bayreuth.de/linux/artix-linux/$repo/os/$arch
Server = https://mirror.clarkson.edu/artix-linux/repos/$repo/os/$arch
Server = https://mirrors.nettek.us/artix-linux/$repo/os/$arch

View file

@ -1,21 +0,0 @@
# Server list generated by rankmirrors on 2022-06-09
Server = https://mirrors.sjtug.sjtu.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.kernel.org/archlinux/$repo/os/$arch
Server = https://mirror.redrock.team/archlinux/$repo/os/$arch
Server = https://mirror.mijn.host/archlinux/$repo/os/$arch
Server = https://mirrors.njupt.edu.cn/archlinux/$repo/os/$arch
Server = https://america.mirror.pkgbuild.com/$repo/os/$arch
Server = https://appuals.com/archlinux/$repo/os/$arch
Server = https://arch-mirror.wtako.net/$repo/os/$arch
Server = https://arch.hu.fo/archlinux/$repo/os/$arch
Server = https://arch.jensgutermuth.de/$repo/os/$arch
Server = https://arch.jsc.mx/$repo/os/$arch
Server = https://arch.juline.tech/$repo/os/$arch
Server = https://arch.lucassymons.net/$repo/os/$arch
Server = https://arch.midov.pl/arch/$repo/os/$arch
Server = https://arch.mirror.constant.com/$repo/os/$arch
Server = https://arch.mirror.ivo.st/$repo/os/$arch
Server = https://arch.mirror.zachlge.org/$repo/os/$arch
Server = https://arch.mirrors.lavatech.top/$repo/os/$arch
Server = https://arch.nimukaito.net/$repo/os/$arch
Server = https://arch.tux.si/mirror/$repo/os/$arch

View file

@ -1,7 +1,7 @@
#!/usr/bin/env sh
#!/usr/bin/env bash
rm -rf /mnt/post_install.sh
sleep 3s
sleep 1s
clear
echo -ne "
__________________________________________________________________________________________________________
@ -23,7 +23,10 @@ ________________________________________________________________________________
echo "Metis Linux Installation Finished!!!"
echo "Umounting all the drives"
umount -R /mnt
echo "And then rebooting in 10 seconds!!!"
echo "After Reboot login your your username and password and type startx to start GUI."
sleep 10s
echo "If you've installed metis-os in a VM, it may be buggy or could perform abnormal, try disabling picom compositor."
echo "AFTER REBOOTING RUN THE FOLLOWING COMMAND IN CASE OF NO NETWORK CONNECTIO: "
echo "1. sudo ls -s /etc/runit/sv/NetworkManager /run/runit/service"
echo "And then rebooting in 15 seconds!!!"
sleep 20s
reboot

View file

@ -0,0 +1,269 @@
#!/bin/bash
shopt -s extglob
#!/hint/bash
#{{{ message
#set +u +o posix
# shellcheck disable=1091
. /usr/share/makepkg/util.sh
export LANG=C
shopt -s extglob
if [[ -t 2 && "$TERM" != dumb ]]; then
colorize
else
# shellcheck disable=2034
declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW=''
fi
stat_busy() {
local mesg=$1; shift
# shellcheck disable=2059
printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2
}
stat_done() {
# shellcheck disable=2059
printf "${BOLD}done${ALL_OFF}\n" >&2
}
lock_close() {
local fd=$1
exec {fd}>&-
}
lock() {
if ! [[ "/dev/fd/$1" -ef "$2" ]]; then
mkdir -p -- "$(dirname -- "$2")"
eval "exec $1>"'"$2"'
fi
if ! flock -n "$1"; then
stat_busy "$3"
flock "$1"
stat_done
fi
}
slock() {
if ! [[ "/dev/fd/$1" -ef "$2" ]]; then
mkdir -p -- "$(dirname -- "$2")"
eval "exec $1>"'"$2"'
fi
if ! flock -sn "$1"; then
stat_busy "$3"
flock -s "$1"
stat_done
fi
}
_setup_workdir=false
setup_workdir() {
[[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX")
_setup_workdir=true
trap 'trap_abort' INT QUIT TERM HUP
trap 'trap_exit' EXIT
}
trap_abort() {
trap - EXIT INT QUIT TERM HUP
abort
}
trap_exit() {
local r=$?
trap - EXIT INT QUIT TERM HUP
cleanup $r
}
cleanup() {
if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then
rm -rf "$WORKDIR"
fi
exit "${1:-0}"
}
abort() {
error 'Aborting...'
cleanup 255
}
die() {
(( $# )) && error "$@"
cleanup 255
}
#}}}
#!/hint/bash
#{{{ chroot
orig_argv=("$0" "$@")
check_root() {
local keepenv="$1"
(( EUID == 0 )) && return
if type -P sudo >/dev/null; then
# shellcheck disable=2154
exec sudo --preserve-env="$keepenv" -- "${orig_argv[@]}"
else
# shellcheck disable=2154
exec su root -c "$(printf ' %q' "${orig_argv[@]}")"
fi
}
is_btrfs() {
[[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs ]]
}
is_subvolume() {
[[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs && "$(stat -c %i "$1")" == 256 ]]
}
# is_same_fs() {
# [[ "$(stat -c %d "$1")" == "$(stat -c %d "$2")" ]]
# }
subvolume_delete_recursive() {
local subvol
is_subvolume "$1" || return 0
while IFS= read -d $'\0' -r subvol; do
if ! subvolume_delete_recursive "$subvol"; then
return 1
fi
done < <(find "$1" -mindepth 1 -xdev -depth -inum 256 -print0)
if ! btrfs subvolume delete "$1" &>/dev/null; then
error "Unable to delete subvolume %s" "$subvol"
return 1
fi
return 0
}
# }}}
#!/hint/bash
#{{{ mount
ignore_error() {
"$@" 2>/dev/null
return 0
}
trap_setup(){
[[ $(trap -p EXIT) ]] && die 'Error! Attempting to overwrite existing EXIT trap'
trap "$1" EXIT
}
chroot_mount() {
# msg2 "mount: [%s]" "$2"
mount "$@" && CHROOT_ACTIVE_MOUNTS=("$2" "${CHROOT_ACTIVE_MOUNTS[@]}")
}
chroot_add_resolv_conf() {
local chrootdir=$1 resolv_conf=$1/etc/resolv.conf
[[ -e /etc/resolv.conf ]] || return 0
# Handle resolv.conf as a symlink to somewhere else.
if [[ -L $chrootdir/etc/resolv.conf ]]; then
# readlink(1) should always give us *something* since we know at this point
# it's a symlink. For simplicity, ignore the case of nested symlinks.
resolv_conf=$(readlink "$chrootdir/etc/resolv.conf")
if [[ $resolv_conf = /* ]]; then
resolv_conf=$chrootdir$resolv_conf
else
resolv_conf=$chrootdir/etc/$resolv_conf
fi
# ensure file exists to bind mount over
if [[ ! -f $resolv_conf ]]; then
install -Dm644 /dev/null "$resolv_conf" || return 1
fi
elif [[ ! -e $chrootdir/etc/resolv.conf ]]; then
# The chroot might not have a resolv.conf.
return 0
fi
chroot_mount /etc/resolv.conf "$resolv_conf" --bind
}
chroot_mount_conditional() {
local cond=$1; shift
if eval "$cond"; then
chroot_mount "$@"
fi
}
chroot_setup(){
local mnt="$1" os="$2" args='-t tmpfs -o nosuid,nodev,mode=0755'
$os && args='--bind'
chroot_mount_conditional "! mountpoint -q '$mnt'" "$mnt" "$mnt" --bind &&
chroot_mount proc "$mnt/proc" -t proc -o nosuid,noexec,nodev &&
chroot_mount sys "$mnt/sys" -t sysfs -o nosuid,noexec,nodev,ro &&
ignore_error chroot_mount_conditional "[[ -d '$mnt/sys/firmware/efi/efivars' ]]" \
efivarfs "$mnt/sys/firmware/efi/efivars" -t efivarfs -o nosuid,noexec,nodev &&
chroot_mount udev "$mnt/dev" -t devtmpfs -o mode=0755,nosuid &&
chroot_mount devpts "$mnt/dev/pts" -t devpts -o mode=0620,gid=5,nosuid,noexec &&
chroot_mount shm "$mnt/dev/shm" -t tmpfs -o mode=1777,nosuid,nodev &&
chroot_mount /run "$mnt/run" ${args} &&
chroot_mount tmp "$mnt/tmp" -t tmpfs -o mode=1777,strictatime,nodev,nosuid
}
chroot_api_mount() {
CHROOT_ACTIVE_MOUNTS=()
trap_setup chroot_api_umount
chroot_setup "$1" false
}
chroot_api_umount() {
if (( ${#CHROOT_ACTIVE_MOUNTS[@]} )); then
# msg2 "umount: [%s]" "${CHROOT_ACTIVE_MOUNTS[@]}"
umount "${CHROOT_ACTIVE_MOUNTS[@]}"
fi
unset CHROOT_ACTIVE_MOUNTS
}
#}}}
usage() {
printf 'usage: %s chroot-dir [command]\n' "${0##*/}"
printf ' -h Print this help message\n'
printf '\n'
printf " If 'command' is unspecified, %s will launch /bin/sh.\n" "${0##*/}"
printf '\n'
printf '\n'
exit "$1"
}
opts=':h'
while getopts ${opts} arg; do
case "${arg}" in
h|?) usage 0 ;;
esac
done
shift $(( OPTIND - 1 ))
check_root
chrootdir=$1
shift
[[ -d ${chrootdir} ]] || die "Can't create chroot on non-directory %s" "${chrootdir}"
chroot_api_mount "${chrootdir}" || die "failed to setup API filesystems in chroot %s" "${chrootdir}"
chroot_add_resolv_conf "${chrootdir}"
SHELL=/bin/sh unshare --fork --pid chroot "${chrootdir}" "$@"

View file

@ -1,3 +0,0 @@
Server = https://pkgs.metislinux.org/$arch
Server = https://metislinux.yogeshlamichhane.com.np/$arch
Server = https://metislinux.iyamnabeen.xyz/$arch

View file

@ -1,4 +1,85 @@
#!/usr/bin/env sh
#!/usr/bin/env bash
networkError() {
sleep 2s
clear
echo -e "Couldnot connect to the internet.\nCheck your Internet Connection and please try again.\nExitting..."
sleep 2s
exit 1
}
failed() {
sleep 2s
clear
echo -e "Something went wrong.\nThe command could not be executed correctly!\nPlease try again.\nExitting..."
sleep 2s
exit 1
}
installationError() {
sleep 2s
clear
echo -e "Something went wrong.\nAll the packages couldn't be installed correctly!\nPlease try again.\nExitting..."
sleep 2s
exit 1
}
configError() {
sleep 2s
clear
echo "Checking configs in new system..."
if ! ls /mnt/config &> /dev/null; then
echo -e "Reuired config files couldn't be copied to new system. Installation failed!\nAborting..."
exit 1
else
ls /mnt/config
echo "All good..."
sleep 5s
fi
}
ignoreableErrors() {
sleep 2s
clear
echo -e "Something went wrong.\nThe command was not executed correctly!\nThe error can be negleted as it doesn't affect our installation.\nContinuing the installation..."
sleep 3s
}
updateMirrors() {
sleep 2s
clear
if ! which rankmirrors &> /dev/null; then
echo -e "rankmirrors command not found\nCouldn't update the repository mirrorlists\nContinuing without updating mirrors have got chances of installation failure..."
else
echo -e "\nUpdating latest and fastest mirrorlists to download packages faster.\nBe patient, this may take some time upto few minutes..."
rankmirrors -n 20 /etc/pacman.d/mirrorlist > /etc/pacman.d/mirrorlist.new
mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak || ignoreableErrors
mv /etc/pacman.d/mirrorlist.new /etc/pacman.d/mirrorlist || failed
echo "Mirrorlists updated..."
sleep 2s
fi
}
checkingConnection() {
sleep 2s
clear
echo "Checking internet connection..."
ping -c 3 metislinux.org || networkError
echo "Cool! Internet Connection Available. Getting ready for installation..."
sleep 3s
}
settingFont() {
sleep 2s
clear
echo "Setting bigger font for better readability..."
sleep 2s
setfont ter-v22b || ignoreableErrors
}
displayArt(){
sleep 2s
clear
echo -ne "
__________________________________________________________________________________________________________
| |
@ -13,16 +94,20 @@ ________________________________________________________________________________
| Check: https://github.com/metis-os for details or visit https://metislinux.org |
|---------------------------------------------------------------------------------------------------------|
|_________________________________________________________________________________________________________|
"
sleep 3s
echo "Internet Connection is a must to begin."
echo "Installing terminus font for better view."
pacman -Sy --needed --noconfirm terminus-font
setfont ter-v22b
}
checkDrive(){
if ! lsblk | grep "$drive" &> /dev/null ; then
clear
echo -e "$drive is not found. Check your available disks and try again.\nAborting installation\nInstallation failed..."
exit 1
fi
}
diskPartition(){
sleep 2s
clear
echo -ne "
------------------------------------------------------------------------
THIS WILL FORMAT AND DELETE ALL DATA ON THE DISK
@ -30,16 +115,15 @@ echo -ne "
after formating your disk there is no way to get data back
------------------------------------------------------------------------
"
sleep 3s
lsblk
echo "Enter the drive to install metis linux on it."
echo "Enter Drive (eg. sda or vda or nvme0n1): "
read -r drive
checkDrive
sleep 2s
clear
lsblk
echo "Choose a familier disk utility tool to partition your drive!"
echo "Choose a familier disk utility tool to partition your drive! [Default=cfdisk]: "
echo " 1. fdisk"
echo " 2. cfdisk"
echo " 3. gdisk"
@ -65,9 +149,9 @@ case "$partitionutility" in
;;
esac
echo "$partitionutility is the selected disk utility tool for partition."
sleep 3s
clear
echo "Getting ready for creating partitions!"
sleep 2s
clear
echo "boot partition is mandatory for uefi systems. Skip it for legacy systems"
echo "root partition is mandatory."
echo "home and swap partitions are optional but recommended!"
@ -81,8 +165,8 @@ echo " 1. ext4"
echo " 2. xfs"
echo " 3. btrfs"
echo " 4. f2fs"
echo " Boot partition will be formatted later in fat32 file system type if you have created one."
echo "choose your linux file system type for formatting drives: "
echo " Boot partition will be formatted later in fat32 file system (for uefi systems only)."
echo "Choose your linux file system type for formatting drives [default=ext4]: "
read -r filesystemtype
case "$filesystemtype" in
@ -104,18 +188,27 @@ case "$filesystemtype" in
;;
esac
echo "$filesystemtype is the selected file system type."
sleep 3s
clear
echo "Getting ready for formatting drives."
sleep 3s
clear
lsblk
echo "Enter the root partition (eg: sda1 or nvme0n1p2 or vda4): "
read -r rootpartition
mkfs."$filesystemtype" /dev/"$rootpartition"
mount /dev/"$rootpartition" /mnt
if mountpoint /mnt = "/mnt is not a mountpoint"; then
clear
echo -e "$rootpartition is not mounted successfully. Aborting installation!\nInstallation failed..."
exit 1
else
echo "Cool $rootpartition mounted at /mnt"
sleep 2s
fi
clear
lsblk
read -p "Did you also create separate home partition? [y/n]: " answerhome
echo "Did you also create separate home partition? [y/n]: "
read -r answerhome
case "$answerhome" in
y | Y | yes | Yes | YES)
echo "Enter home partition (eg: sda2 or nvme0n1p1 or vda2): "
@ -123,6 +216,14 @@ case "$answerhome" in
mkfs."$filesystemtype" /dev/"$homepartition"
mkdir /mnt/home
mount /dev/"$homepartition" /mnt/home
if mountpoint /mnt/home = "/mnt/home is not a mountpoint"; then
clear
echo -e "$homepartition is not mounted successfully. Aborting installation!\nInstallation failed..."
exit 1
else
echo "Cool $homepartition mounted at /mnt/home"
sleep 2s
fi
;;
*)
echo "Skipping home partition!"
@ -130,7 +231,8 @@ case "$answerhome" in
esac
clear
lsblk
read -p "Did you also create swap partition? [y/n]: " answerswap
echo "Did you also create swap partition? [y/n]: "
read -r answerswap
case "$answerswap" in
y | Y | yes | Yes | YES)
echo "Enter swap partition (eg: sda3, nvme0n1p1or vda3): "
@ -142,43 +244,65 @@ case "$answerswap" in
echo "Skipping Swap partition!"
;;
esac
clear
lsblk
sleep 3s
sleep 2s
}
installingBase() {
sleep 2s
clear
echo "Installing Base system"
echo "Installing Base system..."
basestrap /mnt base base-devel runit elogind-runit || installationError
sleep 2s
basestrap /mnt base base-devel runit elogind-runit
}
installingKernel() {
sleep 2s
clear
echo "Installing Zen Kernel with its headers and firmware..."
basestrap /mnt linux-zen linux-firmware linux-zen-headers || installationError
sleep 2s
}
generatingFstab() {
sleep 2s
echo "Installing Kernel"
basestrap /mnt linux-zen linux-firmware linux-zen-headers
clear
echo "generating fstab file"
fstabgen -U /mnt > /mnt/etc/fstab
sleep 1s
clear
echo "Checking Fstab Contents"
fstabgen -U /mnt > /mnt/etc/fstab || failed
echo "Checking Fstab Contents..."
cat /mnt/etc/fstab
sleep 3s
}
copyingConfig() {
sleep 2s
clear
echo "Copying config files to new system..."
cp /etc/pacman.d/mirrorlist /mnt/etc/pacman.d/mirrorlist || ignoreableErrors
cp /etc/pacman.d/metis-mirrorlist /mnt/etc/pacman.d/metis-mirrorlist || failed
cp /etc/pacman.conf /mnt/etc/pacman.conf || failed
mv /usr/local/config/post_install.sh /mnt/ || failed
cp -r /usr/local/config /mnt
configError
}
firstphaseCompleted(){
sleep 2s
echo "Copying config files to new system"
cp /usr/bin/artix-chroot /usr/bin/metis-chroot
cp /usr/local/bin/post_install.sh /mnt
cp /usr/local/bin/os-release /mnt
cp /usr/local/bin/grub /mnt
cp /usr/local/bin/xinitrc /mnt
cp /usr/local/bin/pacman.conf /mnt
cp /usr/local/bin/mirrorlist /mnt
cp /usr/local/bin/metis-mirrorlist /mnt
cp /usr/local/bin/init.vim /mnt
cp /usr/local/bin/zshrc /mnt
cp /usr/local/bin/picom.conf /mnt
echo "Checking configs in system"
ls /mnt
sleep 5s
clear
echo "First Phase Completed!"
echo "Entering into Second Phase of Installation..."
echo "run the following command to start second phase"
echo "Run the following commands to start second phase..."
echo "1. metis-chroot /mnt"
echo "2. ./post_install.sh"
}
displayArt
settingFont
checkingConnection
updateMirrors
diskPartition
installingBase
installingKernel
generatingFstab
copyingConfig
firstphaseCompleted

View file

@ -1,21 +0,0 @@
# Server list generated by rankmirrors on 2022-06-09
Server = https://ftp.halifax.rwth-aachen.de/artixlinux/$repo/os/$arch
Server = https://mirror1.artixlinux.org/repos/$repo/os/$arch
Server = http://artist.artixlinux.org/repos/$repo/os/$arch
Server = https://mirror.netcologne.de/artix-linux/$repo/os/$arch
Server = https://mirrors.dotsrc.org/artix-linux/repos/$repo/os/$arch
Server = https://ftp.crifo.org/artix/repos/$repo/os/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/artixlinux/$repo/os/$arch
Server = https://mirror.pascalpuffke.de/artix-linux/$repo/os/$arch
Server = https://us-mirror.artixlinux.org/$repo/os/$arch
Server = https://eu-mirror.artixlinux.org/repos/$repo/os/$arch
Server = https://artix.unixpeople.org/repos/$repo/os/$arch
Server = http://mirrors.redcorelinux.org/artixlinux/$repo/os/$arch
Server = https://mirror.one.com/artix/$repo/os/$arch
Server = https://artixlinux.qontinuum.space/artixlinux/$repo/os/$arch
Server = https://mirror.funami.tech/artix/$repo/os/$arch
Server = https://mirror.freedif.org/Artix/$repo/os/$arch
Server = http://ftp.ntua.gr/pub/linux/artix-linux/$repo/os/$arch
Server = https://mirror.csclub.uwaterloo.ca/artixlinux/$repo/os/$arch
Server = https://mirror.linux.pizza/artix-linux/$repo/os/$arch
Server = https://mirror.clarkson.edu/artix-linux/repos/$repo/os/$arch

View file

@ -1,119 +0,0 @@
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
IgnorePkg = audacity
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
#UseSyslog
#NoProgressBar
Color
CheckSpace
ILoveCandy
VerbosePkgLists
ParallelDownloads = 15
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required
# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Artix Linux
# packagers with `pacman-key --populate artix`.
#
# REPOSITORIES
# - can be defined here or included from another file
# - pacman will search repositories in the order defined here
# - local/custom mirrors can be added here or in separate files
# - repositories listed first will take precedence when packages
# have identical names, regardless of version number
# - URLs will have $repo replaced by the name of the current repo
# - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# The gremlins repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
### Metis Linux Repos
[metis]
SigLevel = Optional TrustAll
Include = /etc/pacman.d/metis-mirrorlist
#[gremlins]
#Include = /etc/pacman.d/mirrorlist
[system]
Include = /etc/pacman.d/mirrorlist
[world]
Include = /etc/pacman.d/mirrorlist
#[galaxy-gremlins]
#Include = /etc/pacman.d/mirrorlist
[galaxy]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the lib32 repositories as required here.
#[lib32-gremlins]
#Include = /etc/pacman.d/mirrorlist
#[lib32]
#Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
### ARCH LINUX REPOS
## Install archlinux-keyrings and enable arch repos to ues them
## Be careful enabling arch liux core repos as it contains many systemd dependent packages which we don't use.
# [core]
# Include = /etc/pacman.d/arch-mirrorlist
#[extra]
#Include = /etc/pacman.d/arch-mirrorlist
#[community]
#Include = /etc/pacman.d/arch-mirrorlist

View file

@ -1,175 +0,0 @@
#!/usr/bin/env sh
clear
echo "generating locale"
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen
sleep 2s
clear
echo "Getting Timezone..."
timezone() {
time_zone="$(curl --fail https://ipapi.co/timezone)"
clear
echo "System detected your timezone to be $time_zone"
echo "Is this correct?"
PS3="Select one.[1/2]: "
options=("Yes" "No")
select one in "${options[@]}"; do
case $one in
Yes)
echo "${time_zone} set as timezone"
ln -sf /usr/share/zoneinfo/"$time_zone" /etc/localtime && break
;;
No)
echo "Please enter your desired timezone e.g. Europe/London :"
read -r new_timezone
echo "${new_timezone} set as timezone"
ln -sf /usr/share/zoneinfo/"$time_zone" /etc/localtime && break
;;
*) echo "Wrong option. Try again";timezone;;
esac
done
}
timezone
hwclock --systohc
echo "checking date"
date
sleep 2s
clear
echo "setting LANG variable"
echo "LANG=en_US.UTF-8" >> /etc/locale.conf
echo "LC_COLLATE=C" >> /etc/locale.conf
sleep 2s
clear
echo "setting console keyboard layout"
echo "KEYMAP=us" > /etc/vconsole.conf
sleep 2s
clear
echo "Set up your hostname!"
echo "Enter your computer name: "
read -r hostname
echo "$hostname" > /etc/hostname
echo "Checking hostname (/etc/hostname)"
cat /etc/hostname
sleep 1s
clear
echo "setting up hosts file"
echo "127.0.0.1 localhost" >> /etc/hosts
echo "::1 localhost" >> /etc/hosts
echo "127.0.1.1 $hostname.localdomain $hostname" >> /etc/hosts
clear
echo "checking /etc/hosts file"
cat /etc/hosts
sleep 2s
#if you are dualbooting, add os-prober with grub and efibootmgr
echo "Installing grub networkmanager and xwallpaper"
pacman -Sy --needed --noconfirm grub networkmanager-runit xwallpaper zsh
clear
sleep 1s
clear
echo "Enabling NetworkManager"
ln -s /etc/runit/sv/NetworkManager /etc/runit/runsvdir/default
sleep 2s
clear
echo "Enter password for root user:"
passwd
clear
echo "Adding regular user!"
echo "Enter username to add a regular user: "
read -r username
useradd -m -g users -G wheel,audio,video,network,storage -s /bin/zsh "$username"
echo "To set password for $username, use different password than for root."
echo "Enter password for "$username": "
passwd "$username"
echo "NOTE: ALWAYS REMEMBER THIS USERNAME AND PASSWORD YOU PUT JUST NOW."
sleep 2s
mv /os-release /usr/lib/
mv /pacman.conf /etc/
mv /mirrorlist /etc/pacman.d/
# mv /arch-mirrorlist /etc/pacman.d/
mv /metis-mirrorlist /etc/pacman.d/
mv /xinitrc /home/"$username"/.xinitrc
chown "$username":users /home/"$username"/.xinitrc
sleep 2s
mkdir -p /home/"$username"/.config/nvim/
mkdir -p /home/"$username"/.config/picom/
mv /init.vim /home/"$username"/.config/nvim/
chown -R "$username":users /home/"$username"/.config
mv /zshrc /home/"$username"/.zshrc
chown "$username":users /home/"$username"/.zshrc
mv /picom.conf /home/"$username"/.config/picom/
chown -R "$username":users /home/"$username"/.config/picom
chown -R "$username":users /home/"$username"/.config/
sleep 2s
clear
mv /grub /etc/default/
pacman -Sy --needed --noconfirm metis-dwm metis-st metis-dmenu metis-wallpapers xorg-server xorg-xinit xorg-xsetroot nerd-fonts-jetbrains-mono ttf-font-awesome pavucontrol pulseaudio pulseaudio-alsa firefox brillo linux-zen-headers linux-firmware curl git neovim zsh metis-slstatus picom-jonaburg-git acpi
sleep 3s
clear
proc_type=$(lscpu)
if grep -E "GenuineIntel" <<< ${proc_type}; then
echo "Installing Intel microcode"
pacman -S --noconfirm --needed intel-ucode
elif grep -E "AuthenticAMD" <<< ${proc_type}; then
echo "Installing AMD microcode"
pacman -S --noconfirm --needed amd-ucode
fi
sleep 2s
#Adding sudo previliages to the user you created
echo "Giving sudo access to "$username"!"
echo "$username ALL=(ALL) ALL" >> /etc/sudoers.d/$username
sleep 2s
clear
lsblk
if [[ ! -d "/sys/firmware/efi" ]]; then
clear
echo "Installing grub for legacy system"
sleep 2s
clear
echo "Enter the drive name to install bootloader in it. (eg: sda or nvme01 or vda or something similar)! "
echo "NOTE: JUST GIVE DRIVE NAME (sda, nvme0n1, vda or something similar); NOT THE PARTITION NAME (sda1)"
echo "Enter the drive name: "
read -r grubdrive
grub-install --target=i386-pc /dev/"$grubdrive"
grub-mkconfig -o /boot/grub/grub.cfg
else
echo "Installing efibootmgr"
pacman -Sy --needed --noconfirm efibootmgr dosfstools
sleep 1s
clear
lsblk
echo "Enter partition to install grub! (eg: sda2 or nvme0n1p3, vda4 or something similar): "
read -r grubpartition
mkfs.fat -F 32 /dev/"$grubpartition"
mkdir -p /boot/efi
mount /dev/"$grubpartition" /boot/efi
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB --removable
grub-mkconfig -o /boot/grub/grub.cfg
fi
sleep 2s
clear
echo "Searching and Installing graphics driver if available"
gpu_type=$(lspci)
if grep -E "NVIDIA|GeForce" <<< ${gpu_type}; then
pacman -S --noconfirm --needed nvidia nvidia-utils
elif lspci | grep 'VGA' | grep -E "Radeon|AMD"; then
pacman -S --noconfirm --needed xf86-video-amdgpu
elif grep -E "Integrated Graphics Controller" <<< ${gpu_type}; then
pacman -S --noconfirm --needed libva-intel-driver libvdpau-va-gl vulkan-intel libva-utils
elif grep -E "Intel Corporation UHD" <<< ${gpu_type}; then
pacman -S --needed --noconfirm libva-intel-driver libvdpau-va-gl vulkan-intel libva-intel-driver libva-utils
fi
sleep 2s
clear
echo "Second Phase Completed!"
echo "Entering into Final Phase of Installation..."
echo "run the following commands to start final phase "
echo "1. exit"
echo "2. final.sh"
sleep 5s

View file

@ -0,0 +1,242 @@
#!/bin/bash
#
# rankmirrors - read a list of mirrors from a file and rank them by speed
# Generated from rankmirrors.sh.in; do not edit by hand.
#
# Copyright (c) 2009 Matthew Bruenig <matthewbruenig@gmail.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# traps interrupt key to spit out pre-interrupt info
trap finaloutput INT
declare -r myname='rankmirrors'
declare -r myver='1.5.3'
usage() {
echo "${myname} v${myver}"
echo
echo "Ranks pacman mirrors by their connection and opening speed. Pacman mirror"
echo "files are located in /etc/pacman.d/. It can also rank one mirror if the URL is"
echo "provided."
echo
echo "Usage: ${myname} [options] MIRRORFILE | URL"
echo
echo "Options:"
echo " --version show program's version number and exit"
echo " -h, --help show this help message and exit"
echo " -n NUM number of servers to output, 0 for all"
echo " -m, --max-time NUM specify a ranking operation timeout, can be decimal number"
echo " -t, --times only output mirrors and their response times"
echo " -u, --url test a specific URL"
echo " -v, --verbose be verbose in output"
echo " -r, --repo specify a repository name instead of guessing"
exit 0
}
version() {
echo "${myname} (pacman) ${myver}"
echo "Copyright (c) 2009 Matthew Bruenig <matthewbruenig@gmail.com>."
echo
echo "This is free software; see the source for copying conditions."
echo "There is NO WARRANTY, to the extent permitted by law."
exit 0
}
err() {
echo "$1" >&2
exit 1
}
# gettime fetchurl (e.g gettime http://foo.com/system/os/i686/system.db.tar.gz)
# returns the fetching time, or timeout, or unreachable
gettime() {
IFS=' ' output=( $(curl -s -m $MAX_TIME -w "%{time_total} %{http_code}" "$1" -o/dev/null) )
(( $? == 28 )) && echo timeout && return
(( ${output[1]} >= 400 || ! ${output[1]} )) && echo unreachable && return
echo "${output[0]}"
}
# getfetchurl serverurl (e.g. getturl http://foo.com/system/os/i686)
# if $repo is in the line, then assumes system
# if $arch is in the line, then assumes $(uname -m)
# returns a fetchurl (e.g. http://foo.com/system/os/i686/system.db.tar.gz)
ARCH="$(uname -m)"
getfetchurl() {
local strippedurl="${1%/}"
local replacedurl="${strippedurl//'$arch'/$ARCH}"
if [[ ! $TARGETREPO ]]; then
replacedurl="${replacedurl//'$repo'/system}"
local tmp="${replacedurl%/*}"
tmp="${tmp%/*}"
local reponame="${tmp##*/}"
else
replacedurl="${replacedurl//'$repo'/$TARGETREPO}"
local reponame="$TARGETREPO"
fi
if [[ -z $reponame || $reponame = $replacedurl ]]; then
echo "fail"
else
local fetchurl="${replacedurl}/$reponame.db"
echo "$fetchurl"
fi
}
# This exists to remove the need for a separate interrupt function
finaloutput() {
IFS=$'\n' read -r -d '' -a sortedarray < \
<(printf '%s\n' "${timesarray[@]}" | LC_COLLATE=C sort)
# Final output for mirrorfile
numiterator="0"
if [[ $TIMESONLY ]]; then
echo
echo " Servers sorted by time (seconds):"
for line in "${sortedarray[@]}"; do
echo "${line#* } : ${line% *}"
((numiterator++))
(( NUM && numiterator >= NUM )) && break
done
else
for line in "${sortedarray[@]}"; do
echo "Server = ${line#* }"
((numiterator++))
(( NUM && numiterator >= NUM )) && break
done
fi
exit 0
}
# Argument parsing
[[ $1 ]] || usage
while [[ $1 ]]; do
if [[ ${1:0:2} = -- ]]; then
case "${1:2}" in
help) usage ;;
version) version ;;
max-time)
[[ $2 ]] || err "Must specify number.";
MAX_TIME="$2"
shift 2;;
times) TIMESONLY=1 ; shift ;;
verbose) VERBOSE=1 ; shift ;;
url)
CHECKURL=1;
[[ $2 ]] || err "Must specify URL.";
URL="$2";
shift 2;;
repo)
[[ $2 ]] || err "Must specify repository name.";
TARGETREPO="$2";
shift 2;;
*) err "'$1' is an invalid argument."
esac
elif [[ ${1:0:1} = - ]]; then
if [[ ! ${1:1:1} ]]; then
[[ -t 0 ]] && err "Stdin is empty."
IFS=$'\n' linearray=( $(</dev/stdin) )
STDIN=1
shift
else
snum=1
for ((i=1 ; i<${#1}; i++)); do
case ${1:$i:1} in
h) usage ;;
m)
[[ $2 ]] || err "Must specify number.";
MAX_TIME="$2"
snum=2;;
t) TIMESONLY=1 ;;
v) VERBOSE=1 ;;
u)
CHECKURL=1;
[[ $2 ]] || err "Must specify URL.";
URL="$2";
snum=2;;
r)
[[ $2 ]] || err "Must specify repository name.";
TARGETREPO="$2";
snum=2;;
n)
[[ $2 ]] || err "Must specify number.";
NUM="$2";
snum=2;;
*) err "'$1' is an invalid argument." ;;
esac
done
shift $snum
fi
elif [[ -f $1 ]]; then
FILE="1"
IFS=$'\n' linearray=( $(<$1) )
[[ $linearray ]] || err "File is empty."
shift
else
err "'$1' does not exist."
fi
done
# Some sanity checks
[[ $NUM ]] || NUM=0
[[ $MAX_TIME ]] || MAX_TIME=10
[[ $FILE && $CHECKURL ]] && err "Cannot specify a URL and mirrorfile."
[[ $FILE || $CHECKURL || $STDIN ]] || err "Must specify URL, mirrorfile, or stdin."
# Single URL handling
if [[ $CHECKURL ]]; then
url="$(getfetchurl "$URL")"
[[ $url = fail ]] && err "URL '$URL' is malformed."
[[ $VERBOSE ]] && echo "Testing $url..."
time=$(gettime "$url")
echo "$URL : $time"
exit 0
fi
# Get URL results from mirrorfile, fill up the array, and so on
if [[ $TIMESONLY ]]; then
echo "Querying servers. This may take some time..."
elif [[ $FILE ]]; then
echo "# Server list generated by rankmirrors on $(date +%Y-%m-%d)"
fi
timesarray=()
for line in "${linearray[@]}"; do
if [[ $line =~ ^[[:space:]]*# ]]; then
[[ $TIMESONLY ]] || echo $line
elif [[ $line =~ ^[[:space:]]*Server ]]; then
# Getting values and times and such
server="${line#*= }"
server="${server%%#*}"
url="$(getfetchurl "$server")"
[[ $url = fail ]] && err "URL '$URL' is malformed."
time=$(gettime "$url")
timesarray+=("$time $server")
# Output
if [[ $VERBOSE && $TIMESONLY ]]; then
echo "$server ... $time"
elif [[ $VERBOSE ]]; then
echo "# $server ... $time"
elif [[ $TIMESONLY ]]; then
echo -n " *"
fi
fi
done
finaloutput

View file

@ -1,7 +1,7 @@
# GRUB boot loader configuration
GRUB_DEFAULT=0
GRUB_TIMEOUT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Metis"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet console=tty2"
GRUB_CMDLINE_LINUX=""

View file

@ -134,7 +134,7 @@ if (has("termguicolors"))
set termguicolors
endif
" Include the separate file for plugins (if exists)
" Include the separate file for plugins and plugin related keybindings (if exists)
if filereadable(expand("~/.config/nvim/plugins.vim"))
source ~/.config/nvim/plugins.vim
endif

View file

@ -0,0 +1,285 @@
#!/usr/bin/env bash
failed() {
sleep 2s
clear
echo -e "Something went wrong.\nThe command could not be executed correctly!\nPlease try again.\nExitting..."
sleep 2s
exit 1
}
installationError() {
sleep 2s
clear
echo -e "Something went wrong.\nAll the packages couldn't be installed correctly!\nPlease try again.\nExitting..."
sleep 2s
exit 1
}
ignoreableErrors() {
sleep 2s
clear
echo -e "Something went wrong.\nOS is installing and could be useable but the error should be manually fixed later..."
sleep 3s
}
displayArt(){
sleep 1s
clear
echo -ne "
Installing Metis Linux in a VM is not recommended as it may perform slow and buggy.
__________________________________________________________________________________________________________
| |
| +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+ |
| |M|a|g|i|c| |M|e|t|i|s| |I|n|s|t|a|l|l|e|r| |
| +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+ |
| |
|---------------------------------------------------------------------------------------------------------|
| PHASE 2 |
|---------------------------------------------------------------------------------------------------------|
| Install Metis Linus in few clicks |
| Check: https://github.com/metis-os for details or visit https://metislinux.org |
|---------------------------------------------------------------------------------------------------------|
|_________________________________________________________________________________________________________|
"
sleep 4s
}
generatingLocale() {
sleep 2s
clear
echo "Generating locale at /etc/locale.gen"
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen || ignoreableErrors
locale-gen
}
timezone() {
echo "Getting Timezone..."
time_zone="$(curl --fail https://ipapi.co/timezone)"
clear
echo "System detected your timezone to be $time_zone"
echo "Is this correct?"
PS3="Select one.[1/2]: "
options=("Yes" "No")
select one in "${options[@]}"; do
case $one in
Yes)
echo "${time_zone} set as timezone"
ln -sf /usr/share/zoneinfo/"$time_zone" /etc/localtime && break
;;
No)
echo "Please enter your desired timezone e.g. Europe/London :"
read -r new_timezone
echo "${new_timezone} set as timezone"
ln -sf /usr/share/zoneinfo/"$time_zone" /etc/localtime && break
;;
*) echo "Wrong option. Try again";timezone;;
esac
done
}
settingTimezone() {
sleep 2s
clear
timezone
hwclock --systohc
echo "Checking system date and time..."
date
sleep 2s
}
settingLang() {
sleep 2s
clear
echo "Setting LANG variable"
echo "LANG=en_US.UTF-8" >> /etc/locale.conf
echo "LC_COLLATE=C" >> /etc/locale.conf
echo "Checking system language..."
cat /etc/locale.conf || ignoreableErrors
sleep 3s
}
settingKeyboard() {
sleep 2s
clear
echo "Setting console keyboard layout"
echo "KEYMAP=us" > /etc/vconsole.conf
echo "Checking system Keyboard Layout..."
cat /etc/locale.conf || ignoreableErrors
sleep 3s
}
settingHostname() {
sleep 2s
clear
echo "Enter your computer name: "
read -r hostname
echo "$hostname" > /etc/hostname
echo "Checking hostname (/etc/hostname)"
cat /etc/hostname || ignoreableErrors
sleep 3s
}
settingHosts() {
sleep 2s
clear
echo "setting up hosts file"
{
echo "127.0.0.1 localhost"
echo "::1 localhost"
echo "127.0.1.1 $hostname.localdomain $hostname"
} >> /etc/hosts
echo "checking /etc/hosts file"
cat /etc/hosts || ignoreableErrors
sleep 3s
}
installingBootloader() {
clear
#if you are dualbooting, add os-prober with grub and efibootmgr
echo "Installing grub networkmanager and zsh shell..."
pacman -Sy --needed --noconfirm grub networkmanager-runit zsh || installationError
sleep 3s
}
enablingServices() {
sleep 2s
clear
echo "Enabling NetworkManager"
ln -s /etc/runit/sv/NetworkManager /etc/runit/runsvdir/default
clear
}
addingUser() {
clear
echo "Enter password for root user!"
passwd
sleep 1s
clear
echo "Adding regular user!"
echo "Enter username to add a regular user: "
read -r username
useradd -m -g users -G wheel,audio,video,network,storage -s /bin/zsh "$username" || ignoreableErrors
echo "To set password for $username, use different password than of root."
echo "Enter password for $username! "
passwd "$username"
echo "NOTE: ALWAYS REMEMBER THIS USERNAME AND PASSWORD YOU PUT JUST NOW."
sleep 3s
}
sudoAccess() {
sleep 2s
clear
echo "Giving sudo access to $username!"
echo "$username ALL=(ALL) ALL" >> /etc/sudoers.d/"$username"
}
copyingConfig() {
sleep 2s
clear
echo "Copying config file to their absolute path..."
mv /config/os-release /usr/lib/ || failed
mv /config/grub /etc/default/grub || failed
mv /config/xinitrc /home/"$username"/.xinitrc || failed
chown "$username":users /home/"$username"/.xinitrc || failed
mv /config/zshrc /home/"$username"/.zshrc || failed
chown "$username":users /home/"$username"/.zshrc || failed
sleep 1s
mv /config /home/"$username"/.config/ || ignoreableErrors
chown -R "$username":users /home/"$username"/.config || ignoreableErrors
sleep 1s
}
installingPackages() {
sleep 2s
clear
echo "Installing require packages for metis-os"
pacman -Sy --needed --noconfirm metis-dwm metis-st metis-dmenu metis-wallpapers xorg-server xorg-xinit xorg-xsetroot nerd-fonts-jetbrains-mono ttf-font-awesome pavucontrol pulseaudio pulseaudio-alsa firefox brillo linux-zen-headers linux-firmware curl git neovim zsh metis-slstatus picom-jonaburg-git acpi xwallpaper || installationError
}
installingMicrocode() {
sleep 2s
clear
if lscpu | grep "GenuineIntel"; then
echo "Installing Intel microcode"
pacman -S --noconfirm --needed intel-ucode || ignoreableErrors
elif lscpu | grep "AuthenticAMD"; then
echo "Installing AMD microcode"
pacman -S --noconfirm --needed amd-ucode || ignoreableErrors
fi
}
configuringBootloader() {
sleep 2s
clear
if [[ ! -d "/sys/firmware/efi" ]]; then
echo "Legacy system detected..."
echo "Enter the drive name to install bootloader in it. (eg: sda or nvme01 or vda or something similar)! "
echo "NOTE: JUST GIVE DRIVE NAME (sda, nvme0n1, vda or something similar); NOT THE PARTITION NAME (sda1)"
echo "Enter the drive name: "
read -r grubdrive
grub-install --target=i386-pc /dev/"$grubdrive"
grub-mkconfig -o /boot/grub/grub.cfg
else
echo "UEFI system detected..."
echo "Installing efibootmgr"
pacman -Sy --needed --noconfirm efibootmgr dosfstools
sleep 2s
clear
lsblk
echo "Enter partition to install grub! (eg: sda2 or nvme0n1p3, vda4 or something similar): "
read -r grubpartition
mkfs.fat -F 32 /dev/"$grubpartition"
mkdir -p /boot/efi
mount /dev/"$grubpartition" /boot/efi
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB --removable
grub-mkconfig -o /boot/grub/grub.cfg
fi
sleep 2s
}
graphicsDriver() {
sleep 2s
clear
echo "Searching and Installing graphics driver if available"
if lspci | grep "NVIDIA|GeForce"; then
pacman -S --noconfirm --needed nvidia nvidia-utils || ignoreableErrors
elif lspci | grep 'VGA' | grep -E "Radeon|AMD"; then
pacman -S --noconfirm --needed xf86-video-amdgpu || ignoreableErrors
elif lspci | grep "Integrated Graphics Controller"; then
pacman -S --noconfirm --needed libva-intel-driver libvdpau-va-gl vulkan-intel libva-utils || ignoreableErrors
elif lspci | grep -E "Intel Corporation UHD|Intel Corporation HD"; then
pacman -S --needed --noconfirm libva-intel-driver libvdpau-va-gl vulkan-intel libva-intel-driver libva-utils || ignoreableErrors
fi
}
secondphaseCompleted(){
sleep 2s
clear
echo "Second Phase Completed!"
echo "Entering into Final Phase of Installation..."
echo "Run the following commands to start final phase..."
echo "1. exit"
echo "2. final.sh"
}
displayArt
generatingLocale
settingTimezone
settingLang
settingKeyboard
settingHostname
settingHosts
installingBootloader
addingUser
sudoAccess
copyingConfig
installingPackages
installingMicrocode
configuringBootloader
graphicsDriver
secondphaseCompleted

View file

@ -8,10 +8,7 @@ if cpuid -l; then
title="$kopt";
fi;
done
menuentry "ReadOnly: metis.x86_64 " --class=metis.x86_64 "$title @ro_opts@" {# set arguments above with the editor
linux /boot/vmlinuz-$2
initrd /boot/intel-ucode.img /boot/amd-ucode.img /boot/initramfs-x86_64.img
}
menuentry "From Stick/HDD: metis.x86_64 " --class=metis.x86_64 "$title @rw_opts@" {# set arguments above with the editor
linux /boot/vmlinuz-$2
initrd /boot/intel-ucode.img /boot/amd-ucode.img /boot/initramfs-x86_64.img

View file

@ -1,2 +1,2 @@
# grub_theme=/boot/grub/themes/artix/theme.txt
# grub_theme=/boot/grub/themes/metis/theme.txt
timeout=-1