initial
This commit is contained in:
commit
74ae93a96e
1 changed files with 94691 additions and 0 deletions
351
joplin notion extension/linux/Arch/Installation.md
Normal file
351
joplin notion extension/linux/Arch/Installation.md
Normal file
|
|
@ -0,0 +1,351 @@
|
|||
Installation
|
||||
|
||||
https://wiki.archlinux.org/title/installation_guide
|
||||
offline installation : https://medium.com/@elohash/how-to-install-arch-linux-without-internet-no-pacman-9314836949de
|
||||
|
||||
https://docs345.surge.sh/arch_installation/
|
||||
|
||||
|
||||
This video is used for the following steps: https://www.youtube.com/watch?v=DPLnBPM4DhI
|
||||
https://files.catbox.moe/u3tkye.mp4
|
||||
|
||||
- `iwctl`
|
||||
- https://m.youtube.com/watch?v=3czrHtFHteY
|
||||
`device list`
|
||||
`station wlan0 scan` then `station wlan0 get-networks`
|
||||
then connect to internet using
|
||||
`station <device_name> connect <ssid>`
|
||||
Eg: `station wlan0 connect Comcast-50`
|
||||
and `quit`. then ping it by to check if internet is working
|
||||
`ping x.org`.
|
||||
- Update time with `timedatectl`
|
||||
- Partitioning disk
|
||||
- Check partition using `fdisk -l` or `lsblk` or `cfdisk`
|
||||
- Then `fdisk <partition>`
|
||||
eg: `fdisk /dev/sda`
|
||||
- Type these commands in sequence:
|
||||
`p` to print information
|
||||
`o` to create new label
|
||||
`n` to add new partition. So many prompts will come just press enter to select default.
|
||||
|
||||
- Press `t` and Choose lvm by typing `8E` then type `a` to make partition active.
|
||||
- Finalize change type `w` then enter
|
||||
- Then create physical volume using
|
||||
`pvcreate --dataalignment 1m /dev/sda1`
|
||||
- Now create volume group
|
||||
`vgcreate volgroup0 /dev/sda1` . Here `volgroup0` is a group name.
|
||||
- Now create 2 logical volumes ie lv_root and lv_home
|
||||
`lvcreate -L 30GB volgroup0 -n lv_root`
|
||||
and
|
||||
`lvcreate -l 100%FREE volgroup0 -n lv_home`
|
||||
- Load new volume group into memory
|
||||
`modprobe dm_mod`
|
||||
- Scan system for volume groups
|
||||
`vgscan` and activate it
|
||||
`vgchange -ay`
|
||||
- Formatting volumes
|
||||
- Now format these parttions. For root one , format it with ext4 and for swap one format with swap
|
||||
Ext4 formatting
|
||||
`mkfs.ext4 /dev/volgroup0/lv_root`
|
||||
Mounting
|
||||
`mount /dev/volgroup0/lv_root /mnt`
|
||||
|
||||
Now format 2nd logical volume and mount it
|
||||
`mkfs.ext4 /dev/volgroup0/lv_home`
|
||||
Mounting
|
||||
`mkdir /mnt/home`
|
||||
`mount /dev/volgroup0/lv_home /mnt/home`
|
||||
|
||||
If there r swap partitions then
|
||||
Format the Swap Partition (if created): If you created a swap partition, format it as swap:
|
||||
`mkswap /dev/sdX2` # Replace /dev/sdX2 with your swap partition
|
||||
`swapon /dev/sdX2` # Activate the swap partition
|
||||
|
||||
`mkdir /mnt/etc`
|
||||
Saving partition layout by:
|
||||
`genfstab -U -p /mnt >> /mnt/etc/fstab`
|
||||
|
||||
|
||||
- For UEFI
|
||||
Difference here is that we need to create efi partition
|
||||
After typing `fdisk /dev/sda` type these commands:
|
||||
`p` and `g`(for new GPT) , `n` then
|
||||
- Partition number and First sector is default but for last sector we need to change it So type `+500M` as 500mb is enough for efi
|
||||
|
||||
Now type `t` and and partition type is `1` which means efi
|
||||
- Now one more partition for rest
|
||||
So type `n` and just select defaults and set the type with `t` and set to lvm
|
||||
- Partition number would be 2 which is default
|
||||
- Type `30` for lvm
|
||||
- Finally verify it by `p` and type `w` to make changes
|
||||
|
||||
For parttion 1 ie efi , it have to be formatted with fat32
|
||||
`mkfs.fat -F32 /dev/sda1`
|
||||
Here `-F32` represents fat32
|
||||
Now instead of creating and volume and setting other steps for lvm use sda2 instead of sda1 .
|
||||
|
||||
- For UEFI with encryption
|
||||
|
||||
|
||||

|
||||
this should be. 1st to efi,2nd to linux filesystem and 3rd to linux lvm
|
||||
|
||||
Do same for efi and set ext4 for partition 2 but before formatting 4rd we need to encrypt it
|
||||
- Setting encryption
|
||||
`cryptsetup luksFormat /dev/sda3`
|
||||
Now u need to type passphrase. This passphrase should be available else all data will remain encrypted and inaccessible. After typing passphrase it will get locked so type
|
||||
`cryptsetup open --type luks /dev/sda3 lvm`
|
||||
|
||||
Now just create volume , format and mount
|
||||
`pvcreate --dataalignment 1m /dev/mapper/lvm`
|
||||
|
||||
- Installing components
|
||||
- Using pacstrap command
|
||||
`pacstrap -i /mnt base`
|
||||
There mey be a error related to keyring hell so to fix it use
|
||||
https://wiki.archlinux.org/title/Pacman/Package_signing#Resetting_all_the_keys
|
||||
In `/etc/pacman.conf`
|
||||
```text
|
||||
SigLevel = Never
|
||||
#LocalFileSigLevel = Optional
|
||||
#RemoteFileSigLevel = Required
|
||||
```
|
||||
|
||||
- Configure our installation
|
||||
`arch-chroot /mnt` Using in chroot environment. arch-chroot is like a fake-root which change to new directory so that u can make changes af if they r live but all those changes will take place in future.
|
||||
- Inside chroot, install 4 packages ie linux, linux-headers and linux-lts, linux-lts-headers. 2 versions bcz if one dont work then other may work. lts means here 'long term support' hence stable. Use
|
||||
`pacman -S linux linux-headers linux-lts linux-lts-headers linux-firmware`
|
||||
Then few more packages like nano, base-devel(basic development tools), openssh(remote access)
|
||||
To use openssh make sure to enable sshd
|
||||
`systemctl enable sshd`
|
||||
|
||||
Install packages for network working
|
||||
`pacman -S networkmanager wpa_supplicant wireless_tools netctl`
|
||||
|
||||
installing dialog if gui network interface not working
|
||||
`pacman -S dialog`
|
||||
Then finally enable NetworkManager so it will be started when booted
|
||||
`systemctl enable NetworkManager`
|
||||
|
||||
Installing lvm support
|
||||
`pacman -S lvm2`
|
||||
|
||||
To ensure boot process support our configuration, we have to modify a config file
|
||||
`nano /etc/mkinitcpio.conf`
|
||||
now using Ctrl+W find the `HOOKS` which is not commented. Between block and filesystems word,
|
||||
add `lvm2` . if used encryption then add `encrypt lvm2`.
|
||||
|
||||
|
||||
- Resizing partition
|
||||
`lvdisplay` and `vgdisplay`
|
||||
|
||||
Shrink LV
|
||||
If something goes wrong with length of partition then u need to resize it
|
||||
`umount /dev/VG_NAME/lv_home` # Unmount the LV (replace VG_NAME with your volume group)
|
||||
`e2fsck -f /dev/volgroup0/lv_home` # to check file system consistency and check for errors,bad block.
|
||||
`resize2fs /dev/VG_NAME/lv_home NEW_SIZE` # Shrink the filesystem
|
||||
`lvreduce -L NEW_SIZE /dev/VG_NAME/lv_home` # Shrink the logical volume
|
||||
|
||||
Extend LV
|
||||
`lvextend -L +NEW_SIZE /dev/VG_NAME/lv_root` # Extend the logical volume
|
||||
or
|
||||
`lvextend -l +100%FREE /dev/VG_NAME/lv_root`
|
||||
`e2fsck -f /dev/volgroup0/lv_root`
|
||||
`resize2fs /dev/VG_NAME/lv_root` # Resize the filesystem to use the new space
|
||||
|
||||
- Initramfs
|
||||
To take all these setups and option take effect use this
|
||||
`mkinitcpio -p linux`
|
||||
`mkinitcpio -p linux-lts`(As this was also installed)
|
||||
Then set the locale by
|
||||
`nano /etc/locale.gen`
|
||||
Then choose en us and uncomment it
|
||||
`locale-gen`
|
||||
|
||||
Updating password
|
||||
`passwd` then type password to set it
|
||||
|
||||
Creating standard user
|
||||
`useradd -m -g users -G wheel hvm`
|
||||
`-m` means creating home directory for the user, `-g` represents initial login group, `-G` are other supplementary groups. `hvm` is user name.
|
||||
Then set password for this user
|
||||
`passwd hvm` and set password.
|
||||
After this we dont have to use root account always, instead we can use sudo
|
||||
|
||||
Now we need to associate wheel group with sudo
|
||||
`EDITOR=nano visudo`
|
||||
`visudo` is a dedicated command to modify sudo priviledges
|
||||
Scroll down and search for `%wheel ALL=(ALL:ALL) ALL` and uncomment it and save the file.
|
||||
Now user can use sudo to run administrative task.
|
||||
|
||||
- Installing GRUB
|
||||
Its purpose is to boot the OS without bootable media like USB or CD.
|
||||
- For non-UEFI(BIOS)
|
||||
Install this:
|
||||
`pacman -S grub dosfstools os-prober mtools`
|
||||
and finally
|
||||
`grub-install --target=i386-pc --recheck /dev/sda`
|
||||
|
||||
- For UEFI install these
|
||||
`pacman -S grub efibootmgr dosfstools os-prober mtools`
|
||||
|
||||
`mkdir /boot/EFI`
|
||||
`mount /dev/sda1 /boot/EFI`
|
||||
and finally
|
||||
`grub-install --target=x86_64-efi --bootloader-id=grub_uefi --recheck`
|
||||
|
||||
Check if grub exists by this:
|
||||
`ls -l /boot/grub`
|
||||
|
||||
- Others
|
||||
`cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo`
|
||||
- With encryption
|
||||
`nano /etc.default/grub` then uncomment `GRUB_ENABLE_CRYPTODISK=y`
|
||||
and edit the line
|
||||
#add this GRUB_CMDLINE_LINUX_DEFAULT="cryptodevice=/dev/sda3:volgroup0:allow-discards loglevel=3 quiet"
|
||||
|
||||
- Generate grub config file
|
||||
`grub-mkconfig -o /boot/grub/grub.cfg`
|
||||
Finally
|
||||
`exit` and `umount -a` (to unmount everything)
|
||||
Finally `reboot`
|
||||
|
||||
### Post install tweeks
|
||||
- Creating swap file(not partition)
|
||||
`su`
|
||||
`cd /root`
|
||||
The dd command in Linux is a versatile utility used for copying and converting files, including data from files, devices, partitions, or even raw disk images. The command's name, "dd," stands for "data duplicator."
|
||||
`dd if=/dev/zero of=/swapfile bs=1M count=1024 status=progress`
|
||||
Changing permissions of swapfile
|
||||
`chmod 600 /swapfile`
|
||||
Formatting it to swap
|
||||
`mkswap /swapfile`
|
||||
Backing up copy of fstab file as we going to edit it
|
||||
`cp /etc/fstab /etc/fstab.bak`
|
||||
Editing it
|
||||
`echo '/swapfile none swap sw 0 0' | tee -a /etc/fstab`
|
||||
It will add the line
|
||||
|
||||
`free -m` to check is swap is there
|
||||
`mount -a`(if it runs means no error)
|
||||
|
||||
To activate swap
|
||||
`swapon -a` and check it with `free -m`
|
||||
|
||||
- Setting time zone
|
||||
Listing it
|
||||
`timedatectl list-timezones`
|
||||
Setting it
|
||||
`timedatectl set-timezone <from_list>`
|
||||
Enabling it
|
||||
`systemctl enable systemd-timesyncd`
|
||||
|
||||
Setting host name
|
||||
`hostnamectl set-hostname archhost` here 'archhost' is host name
|
||||
Editing hosts file
|
||||
`nano /etc/hosts`
|
||||
and add
|
||||
```
|
||||
127.0.0.1 localhost
|
||||
127.0.1.1 archhost
|
||||
```
|
||||
and save it
|
||||
To check it
|
||||
`hostnamectl`
|
||||
This image will be the output
|
||||
|
||||
|
||||

|
||||
|
||||
**Installing micro code for CPU**(optional)
|
||||
AMD CPU
|
||||
`pacman -S amd-ucode`
|
||||
or
|
||||
Intel CPU
|
||||
`pacman -S intel-ucode`
|
||||
|
||||
- **GUI**
|
||||
- Installing xorg
|
||||
`pacman -S xorg-server`
|
||||
- Installing video driver
|
||||
For Intel or AMD GPU
|
||||
`pacman -S mesa`
|
||||
For NVIDIA GPU
|
||||
`pacman -S nvidia-lts nvidia`
|
||||
For VBox
|
||||
`pacman -S virtualbox-guest-utils xf86-video-vmware`
|
||||
and enable vbox extension
|
||||
`systemctl enable vboxservice`
|
||||
For QEMU, this might improve performance
|
||||
`sudo pacman -S xf86-video-qxl
|
||||
`
|
||||
And configure it too
|
||||
`sudo mkdir -p /etc/X11/xorg.conf.d`
|
||||
`sudo nano /etc/X11/xorg.conf.d/20-qxl.conf
|
||||
`
|
||||
Type this
|
||||
```
|
||||
Section "Device"
|
||||
Identifier "qxl"
|
||||
Driver "qxl"
|
||||
Option "AccelMethod" "glamor"
|
||||
EndSection
|
||||
|
||||
```
|
||||
and save it
|
||||
|
||||
|
||||
- Installing Desktop Environment
|
||||
- GNOME
|
||||
`pacman -S GNOME`
|
||||
it will store many dependencies as its a package group
|
||||
Some other optional
|
||||
`pacman -S gnome-tweaks` this will give more control over the environment
|
||||
|
||||
Enable display manager
|
||||
`systemctl enable gdm`
|
||||
This will enable login screen
|
||||
Specify the language in Region and Language section else terminal wont open
|
||||
- Plasma
|
||||
`pacman -S plasma-meta kde-applications`
|
||||
Enable display manager
|
||||
`systemctl enable sddm`
|
||||
- Xfce
|
||||
`pacman -S xfce4 xfce4-goodies`
|
||||
Install display manager
|
||||
`pacman -S lightdm lightdm-gtk-greeter`
|
||||
Enabling it
|
||||
`systemctl enable lightdm`
|
||||
- Packages in xfce
|
||||
: There are 15 members in group xfce4:
|
||||
:: Repository extra
|
||||
```
|
||||
1) exo 2) garcon 3) thunar 4) thunar-volman 5) tumbler
|
||||
6) xfce4-appfinder 7) xfce4-panel 8) xfce4-power-manager 9) xfce4-session
|
||||
10) xfce4-settings 11) xfce4-terminal 12) xfconf 13) xfdesktop 14) xfwm4
|
||||
15) xfwm4-themes
|
||||
Enter a selection (default=all):
|
||||
:: There are 36 members in group xfce4-goodies:
|
||||
:: Repository extra
|
||||
|
||||
1) mousepad 2) parole 3) ristretto 4) thunar-archive-plugin
|
||||
5) thunar-media-tags-plugin 6) xfburn 7) xfce4-artwork
|
||||
8) xfce4-battery-plugin 9) xfce4-clipman-plugin 10) xfce4-cpufreq-plugin
|
||||
11) xfce4-cpugraph-plugin 12) xfce4-dict 13) xfce4-diskperf-plugin
|
||||
14) xfce4-eyes-plugin 15) xfce4-fsguard-plugin 16) xfce4-genmon-plugin
|
||||
17) xfce4-mailwatch-plugin 18) xfce4-mount-plugin 19) xfce4-mpc-plugin
|
||||
20) xfce4-netload-plugin 21) xfce4-notes-plugin 22) xfce4-notifyd
|
||||
23) xfce4-pulseaudio-plugin 24) xfce4-screensaver 25) xfce4-screenshooter
|
||||
26) xfce4-sensors-plugin 27) xfce4-smartbookmark-plugin
|
||||
28) xfce4-systemload-plugin 29) xfce4-taskmanager
|
||||
30) xfce4-time-out-plugin 31) xfce4-timer-plugin 32) xfce4-verve-plugin
|
||||
33) xfce4-wavelan-plugin 34) xfce4-weather-plugin
|
||||
35) xfce4-whiskermenu-plugin 36) xfce4-xkb-plugin
|
||||
```
|
||||
|
||||
as
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in a new issue