Skip Navigation
Jump
Bcache is amazing!: Making HDD way faster!
  • I'm using btrfs so I can add more drive on the fly. Saving myself from a headache. But I think bcachefs will make it infinitely easier.

    2
  • Jump
    Bcache is amazing!: Making HDD way faster!
  • For bcache, it is available in apt, I think. You just need to set the ppa. For bcachefs, I think you need to wait for 6.7 to land on Debian or compile it yourself.

    3
  • Jump
    Bcache is amazing!: Making HDD way faster!
  • In my case, it basically helps me improve random read significantly. My NVMe is fast, like 3GB/s in sequential and 500MB/s in random, but it's only 120GB. By using it as a cache in a bcache system, once a random read is performed, the data will be copied from HDD to SSD and if the data is requested again the random read will happen from SSD instead of HDD.

    Thus, using it to play modern gaming is actually do able. Game that requires fast random read, like Baldur's Gate 3 and Starfield.

    As a lot of people in my og post mentioned, random is more important that sequential. Bcache by default disable sequential cache so you wont fill you cache to fast if a big data is being read, like watching movie, copying video, etc. That's where Raid0 comes to the rescue. Having Raid0 with 2 drives basically double my sequential read and having 3 triples it.

    3
  • Okay, I love Linux. But I always surprised that I can love Linux ever more everyday. The possibility is basically endless!

    I asked about raid0 last week and got a lot of helpful answers. However, this answer from d3Xter really helped me figures how I actually want to configure my system. I decided to buy 2x500GB HDD and 120GB NVME SSD. It's cheap, very cheap. Like $15 total. If there is anything wrong with them, I lost nothing. But boy did I get surprised. I tested BG3, a game that requires SSD to perform well and I see no difference between my old SSD and my new setup. It loads as fast (well, maybe 10-15s slower, but who cares?), and I do not need to wait for the textures to load, at all. Boot time is amazing. I notice no difference at all between this HDD and my last SSD setup. Which is insane!

    But the installation is confusing as hell. I write this pseudo-guide for anyone intersted.

    FIRST: DO NOT STORE ANY DATA IN THIS SETUP FOR ANYTHING REMOTE TO IMPORTANT!

    I favor performance for the cheapest possible above all else. Unless you want to buy 4 HDD to get raid10, do not store anything other than games and your apps on it. Do not use raid5 in this setup, it sucks.

    Second: Get yourself an Arch live USB stick with at least 8GB (4 might works, but smallest one I have is 8GB). I think you can use it on other distro, but Arch is the easiest if you want to install IT on the bcache drive. And make sure you booted into UEFI by typing:

    ls /sys/firmware/efi/efivars/

    Third: Installing bcache. After you have internet on your live system, remount your live iso so we can use the AUR.

    mount -o remount,size=8G /run/archiso/cowspace

    Then, install base-devel and git

    pacman -S base-devel git --ignore linux

    If you have slow internet, you can go to 2nd tty by pressing ctrl + alt + f2 and login as root there to do the next step, otherwise wait for the process to finish. We need to setup a user since makepkg wont run on root. So, type:

    useradd -m -G wheel user && passwd user and set your password Then we need the user to able to act as superuser. So, we edit visudo and add this line at the bottom: user ALL=(ALL:ALL)ALL save it and press ctrl + alt + f3, login as user you just set. Clone the bcache-tools AUR repo: git clone https://aur.archlinux.org/bcache-tools.git && cd bcache-tools

    If you want you can inspect the PKGBUILD, but we will proceed to make it, type:

    makepkg -sri

    Once it is done, it will throw error about vmliuz is not found, but the package itself is installed, you just need to tell the kernel to load it. We can achieve that by executing:

    sudo modprobe bcache && sudo partprobe

    Fouth: Configuring the bcache, btrfs, and raid0 List your drive with lsblk identify your HDD and your SSD. Let's say in this instance, we have /dev/sda and /dev/sdb as our HDD and /dev/nvme0n1 as our SSD. I use cfdisk to partition my drive, but you can use whatever you want. I make one partition for both HDD, sda1 and sdb1, and make 3 partitions for my SSD. DO NOT FORMATI IT YET. /dev/sda1 : 500 GB HDD with 500GB partition /dev/sdb1 : same as before /dev/nvme0n1p1 : 118G SSD partition as the cache /dev/nvme0n1p2 : 1G partition as /boot. Even if you have one kernel, do not make a /boot partition less than 1G. I knew it in hard way. /dev/nvme0n1p3 : 200M partition as /boot/efi. Same as before, better safe than sorry. YOU NEED TO HAVE SEPARATE BOOT AND EFI PARTITION, OTHERWISE YOU WILL HAVE AN UNBOOTABLE SYSTEM!

    Okay, now we configure our raid.

    make-bcache -B /dev/sda1 /dev/sdb1

    This command will make a partition (?) called bcache0 and bcache1 under both /dev/sdb and /dev/sda if you use

    lsblk

    Now, we make raid out of those two.

    mkfs.btrfs -L ARCHACHED -d raid0 /dev/bcache0 /dev/bcache1

    Then the cache.

    make-bcache -C /dev/nvme0n1p1

    We can register the cache for our raid setup by its cset.uuid. To know what is the uuid, we can use this command.

    bcache-super-show /dev/nvme0n1p1 |grep cset.uuid

    Example of the output is:

    cset.uuid fc3aac3b-9663-4067-88af-c5066a6c661b

    From that, we can register it by using this command:

    echo fc3aac3b-9663-4067-88af-c5066a6c661b > /sys/block/bcache0/bcache/attach

    echo fc3aac3b-9663-4067-88af-c5066a6c661b > /sys/block/bcache1/bcache/attach

    Done! If you lsblk now, you can see that there is bcache0 and bcache1 under the nvme0n1p1 partition.

    Now, we can configure our boot partition.

    mkfs.ext4 /dev/nvme0n1p2 (Remember, this is the 1G partition)

    mkfs.vfat -F 32 /dev/nvme0n1p3 (Remember, this is the 200M partition)

    We can then mount all of those drive to install Arch.

    mount /dev/bcache0 /mnt

    btrfs subvolume create /mnt/root

    btrfs subvolume create /mnt/var (optional)

    btrfs subvolume create /mnt/home (optional)

    umount /mnt

    mount /dev/bcache0 -o subvol=root,compress=lzo /mnt/

    mount --mkdir /dev/bcache0 -o subvol=home,compress=lzo /mnt/home

    mount --mkdir /dev/bcache0 -o subvol=var,compress=lzo /mnt/var

    mount --mkdir /dev/nvme0n1p2 /mnt/boot

    mount --mkdir /dev/nvme0n1p3 /mnt/boot/efi

    Fifth: Install Arch Follow arch wiki, lol.

    Last: bcache-tools, mkinitcpio, and grub. Go back to tty3, the user one. And copy the bcache-tools package to your newly installed /mnt

    sudo cp bcache-tools-1.1-1-x86_64.pkg.tar.zst /mnt

    Then go back tty1 and install it on you arch-chroot.

    pacman -U bcache-tools-1.1-1-x86_64.pkg.tar.zst

    Now, we configure the mkinitcpio. Edit your mkinitcpio by using you editor of choice. And add bcache in in MODULES so it looks like this:

    MODULES=(bcache)

    And in HOOKS, add it after block and before filesystem. Example:

    HOOKS=(base udev block bcache flesystem)

    Make your initcpio by executing this command:

    mkinitcpio -p linux

    Grub is the last. Install it as usual. Just make sure you did the partition right, as mentioned before.

    That's it. You just install Arch Linux on a bcache system. It's complicated, and headache inducing for sure, but I assure you it is totally worth that pain.

    Note: If you have problem after you reboot, and want to arch-chroot, you need to install bcache-tools again. If you want to reformat anything and it shows the device as busy after you did the partprobe, you need to tell the kernel to stop any activity to the drive. In this example the sda is the one you want to edit.

    echo 1 > /sys/block/sda/sda1/bcache/stop

    Now, if you accidentally execute the command, you can use partprobe again to show it up.

    Reference: https://wiki.archlinux.org/title/bcache https://wiki.archlinux.org/title/btrfs https://gist.github.com/HardenedArray/4c1492f537d9785e19406eb5cd991735 https://archive.kernel.org/oldwiki/btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices.html

    23
    Jump
    The best RAID setup for internal HDD and does it actually make sense to use it all for gaming?
  • Now THIS is what I need.

    I think I need to change my plan abit. What do you think: if I buy 2x1TB, use my sata ssd as foreground, and use 128gb nvme drive as promote drive. I still do not understand the difference between background, foreground, ans promote tho. I went back and forth both reading the guide.pdf and archwiki. Still have no idea how they actually work. It's bleeding edge, as no one beside the developer talking about it on youtube.

    However, I think I'm gonna use both linux-tkg linux-git as they are available on the aur. Tkg is the Garuda used, no? It is on chaotic-aur, so I assumed so.

    3
  • Jump
    The best RAID setup for internal HDD and does it actually make sense to use it all for gaming?
  • Yeah, I'm mega broke right now, lol. For reference, $50 for average people is around 8 days worth of salary here. And I'm unfortunately, an average people.

    1
  • Jump
    The best RAID setup for internal HDD and does it actually make sense to use it all for gaming?
  • That RAID would be the separate disks. I surely wont use it to be my / or /home disks, it's too risky. 3x500mb should give me theoretically 300-400mbps of sequential read/write.

    1
  • Jump
    The best RAID setup for internal HDD and does it actually make sense to use it all for gaming?
  • I will only use it for game data. I highly value my personal data so I wont put anything remote to worthy in it, I have nas, separate drive, and even Google Drive. If it fails, the worst thing that will happen is I need to redownload all my games from Steam. It will be a bummer, but I think I should be able to restore the first game in matter of hours. My save data will be saved on Steam anyway.

    Yeah, single hdd is only around 150mbps, not bad, but I saw 4 hdd can get to 600mbps, which is in realm of sata ssd. I'm just thinking to giving a shot, beside it's only $20. If one fail, I still have 1tb.

    1
  • I have 500gb SSD and need to basically uninstall Elden Ring and Dark Souls 3 to install Baldur's Gate 3. I want to buy new SSD, but my money is a bit tight right now as I'm saving for my degree's tuition fee.

    I'm thinking of buying 3x500GB spinning HDD that will cost me around $20. I know it wont be as fast as SSD, but I read/watched about RAID, and saw amazing result. Around 400-500MBPs, which should be more than enough for gaming, imo. If I were to buy the same amount of storage but SSD, it will cost me $100.

    I dont really need redundancy, as all of my personal documents are backed up in my server and I have separate disk just for my data archieve. It will only be used to game and game only.

    Do you think that my idea makes sense? Is it does..., I want to ask another questions.

    I knew I wanted to use RAID 0, but after I read arch wiki, it says that RAID 5 is superior. Should I use BTRFS, EXT4, ZFS, or F2FS? What kernel or module should I use?

    24
    Jump
    *Permanently Deleted*
  • The securest VPN is the one that you can control. I've been using OpenClash on my router, and if anything ever happen, I can just destroy the droplet on my VPS server.

    5
  • Jump
    FOSS launcher options?
  • I'm using Trebuchet (default Lineage launcher) with Launcher30 Lposed module. It's simple, it's very stock, no nonsense, just launcher.

    3
  • I'm using gamescope-session from AUR. I think I install all the necessary packages. It runs fine afterall, better than trying to game on my DE. However, I need to insert password for about 4-5 times before the session starts. It's minor annoyance, but when I just want to game at the end of the day..., I'd rather not dealing with this.

    Any advice?

    1
    Jump
    Asking for torrent ports and IP, or Clash rule of those.
  • It is. I believe it's one of the best thing I install on my homeserver. All my family members are now using VPN, and have their tracker and ad blocked. Since I'm the one who managed the VPS, I can just destroy all the data in it in case anything went wrong.

    So, can I open only one port on my torrent app and have all the incoming connections go through it? That's neat. Clash supports port redirection, and I think I'll use that feature. I will give you update.

    I found this anime-trackers project on github, but it doesnt help, lol.

    1
  • I'm using OpenClash in my router to make shit version of Tor network. I'm using 4 different VPSs to access the internet. It is wonderfull to be able to tell which connection go through what site, or using all of those VPSs to access the internet simultaneously using load-balance method.

    I love it.

    However, I have a problem. Since it is rule based, I dont know what IPs or ports do torrent connections use. It sometime used Direct (from my ISP) connection which scared me.

    2
    Jump
    Looking for the simplest means of playing videos from a USB storage device on a non-smart TV
  • I dont know if these devices are available worldwide, but we, Indonesian, have 2 cheap devices exactly for that. ZTE B860H V5 and HG680FJ. It's like $10 without remote, and another $1 for the remote.

    It came locked by one of our ISP, but you can easily unlock it and put anything you want in it. Linux, OpenWRT, or just regular Android TV. ROM choices are limitless.

    2
  • I know it's very specific, lol. But my Samsung S8 is basically just a portabel 4G modem for me now. Since the screen is cracked and I don't want to spend money on that old phone. I usually access the phone to scrcpy, it works but since the screen is unuseable, I can no longer give adb access to another devices.

    So I just want to know whether is it posible to give it some short of webui that I can access to do basic stuff like turning hotspot on or off, etc.

    1

    I know it's odd, but I have this Chinese setup box with S905x processor, 2GB of RAM, and 500GB of USB Storage. I love it. Really really love it. I unlocked it and It runs OpenWRT with Docker installed and I wonder whether or not this board can be my OnlyOffice server. Thanks.

    2

    Other than your carrier give it for free or cheap, I don't really see the reason why should you buy new phone. I've been using Redmi Note 9 for past 3 years and recently got my had on Poco F5. I don't see the point of my 'upgrade'. I sold it and come back to my Note 9. Gaming? Most of them are p2w or microtransaction garbage or just gimped version of its PC/Console counterpart. I mean, $400 still get you PS4, TV and Switch if you don't mind buying used. At least here where I live. Storage? Dude, newer phone wont even let you have SD Card. Features? Well, all I see is newer phones take more features than it adds. Headphone jack, more ads, and repairability are to name a few. Battery? Just replace them. However, my Note 9 still get through day with one 80% charge in the dawn. Which takes 1 hour.

    I am genuinely curious why newer phone always selling like hot cakes. Since there's virtually no difference between 4gb of RAM and 12gb of RAM, or 12mp camera and 100mp camera on phone.

    402