Jump to...
redirecting...

Log for Ubuntu 台灣社群

昨天在虛擬機裝了 Ubuntu 17.10
只在 MBR 分區表創建了一個 Btrfs 分區。

但是安裝完成之後,在 /etc/fstab 最後一行看到
/swapfile none swap sw 0 0
然後看到 /swapfile 有 665M 大
Ubuntu 一直是這樣嗎?在任何情況下都創建 swapfile?
Btrfs 並不支持 swapfile 啊

我把那行注釋從 fstab 掉了。
還好啦
我的總價值1而已
http://steam.hybrid-glucose.pw/
我對 grub 有些疑問..
grub 可以被安裝在 MBR 或者很多檔案系統(比如把一整個硬碟 format 為 ext4,然後在上面安裝 grub)?
會在 MBR 或者檔案系統嵌入 core.img (GRUB rescue mode)?

這樣的話想要移除 GRUB 不是非常困難嗎?
不過對於 legacy BIOS 似乎沒有更好的辦法。

在 EFI/UEFI 的主板 + GPT 執行 grub-install 不會寫入一些奇怪的、很難移除的東西吧?
之前把一整塊 SSD 格式化為 btrfs 然後在上面安裝一些系統,在 legacy mode 安裝了 grub

後來發現 lsblkfdisk 都顯示 sda 為 msdos 的..

搞得我後來向整塊 SSD 寫入了 zero

然後目前在用 UEFI + rEFInd
基本上 GRUB 只建議「有磁碟分割表且安裝在整個硬碟」的使用模式
在舊式 PC(MBR) 磁碟分割表下 core.img 被安裝在 MBR 與第一分區間的間隙(MBR gap)

The partition table format traditionally used on PC BIOS platforms is called the Master Boot Record (MBR) format; this is the format that allows up to four primary partitions and additional logical partitions. With this partition table format, there are two ways to install GRUB: it can be embedded in the area between the MBR and the first partition (called by various names, such as the "boot track", "MBR gap", or "embedding area", and which is usually at least 31 KiB), or the core image can be installed in a file system and a list of the blocks that make it up can be stored in the first sector of that partition.

Each of these has different problems. There is no way to reserve space in the embedding area with complete safety, and some proprietary software is known to use it to make it difficult for users to work around licensing restrictions; and systems are sometimes partitioned without leaving enough space before the first partition. On the other hand, installing to a filesystem means that GRUB is vulnerable to its blocks being moved around by filesystem features such as tail packing, or even by aggressive fsck implementations, so this approach is quite fragile; and this approach can only be used if the /boot filesystem is on the same disk that the BIOS boots from, so that GRUB does not have to rely on guessing BIOS drive numbers.

The GRUB development team generally recommends embedding GRUB before the first partition, unless you have special requirements. You must ensure that the first partition starts at least 31 KiB (63 sectors) from the start of the disk; on modern disks, it is often a performance advantage to align partitions on larger boundaries anyway, so the first partition might start 1 MiB from the start of the disk.
有意思..

我先在覺得 EFI/UEFI 的設計真是比 legacy BIOS 好很多...
加上 --verbose 命令列參數就可以看到 grub-install 在做什麼,基本上只有在 /boot/grub 跟 EFI 系統分區(ESP)上建立檔案而已
目前我在 UEFI 遇到的一個問題是 linux kernel 不支援 UUID

fstab, initramfs 還有 grub 等一些 bootloader 都支援 UUID,但是 linux kernel 卻支援。

linux kernel 只支援這些
https://github.com/torvalds/linux/blob/master/init/do_mounts.c#L182

可以自己編譯一個 EFI stub kernel 然後通過定義 kernel parameters 的 root= 的值就可以啟動系統(並且把這個 kernel 放到 ESP 的 EFI\BOOT\BOOTX64.EFI )

但是一旦把硬碟換個接口或者在其他設備使用,就需要重新編譯 kernel
為什麼要用btrfs阿
Btrfs 超級棒的。

可以創建多個 subvolume,然後每一個 subvolume 創建一個系統。
archlinux, void linux, gentoo 等一些命令行安裝的 distro 如此安裝相對容易,其他 distro 我是用虛擬機安裝到 btrfs 然後 send 到實體硬碟。

在安裝一個系統完成之後,保留一個 read-only 的 snapshot,然後啟動一個可讀的 snapshot,使用的過程中也可以隨時 snapshot,將來可以隨時切換回去。
哦,更主要的原因是 SSD
subvolume不只btrfs有吧
SSD
SSD 用 Btrfs 相比 HDD 用 Btrfs 應該會好些?
Btrfs 也是那種炸了就沒救的檔案系統
其他的沒用過
據說可以 xfs + LVM ?
😀 要的就是這種感覺
光 LVM 就已經可以 Snapshot + Volume 了
恩,聽說 xfs 性能好一些
話說目前最適合 SSD 的檔案系統有什麼啊
f2fs?
FAT32
[sticker](media:AAQFABOPGMEyAAQemZqjAAHSdeGiEwACAg@telegram)
ext4好像本來也不錯,有開trim就行
不過目前還未多次遇到過大問題

只有兩次
第一塊 Btrfs 全盤,裝上第二塊的之後我嘗試在第二塊 SSD 安裝 Windows,結果 Windows 安裝過程中沒有選擇 ESP 位置,結果就在第一塊 SSD 創建了 ESP

第二次是 Btrfs 的 metadata 快被寫滿,會提示 no space left,但是實際還有很多可用空間,有相應的解決辦法。


基本上不使用圖形界面的安裝方式,Btrfs 就是安全的..
Btrfs 直接支援 snapshot
其他的檔案系統還需要其他工具啊。

我想要盡量避免使用太多東西..
甚至單個檔案不能超過 4GB..
剛剛看了一下,要想用 LVM 要在 Kernel 里開啟 6 個.. Device mapper support 相關的
一般都支援LVM不是嗎
嗯,但是我想編譯自己的 Kernel

我編譯的 Kernel 不支援 MBR, GPT 分區表(不支援任何分區表)。
不支援除了 Btrfs, FAT32 之外的幾乎所有檔案系統,不把很多用不到的驅動編譯進去。

以及完全不開啟 modules 支援。
這是一件很有意思的事情...
追求極度的簡潔...

剛剛注意到 Kernel 默認編譯進入了 RAID, snapshot 等,我要重新編譯..
你很有事
+1
我不是在所有的系統都用這種 Kernel

只是在 Gentoo 和 Void Linux
一般的 binary distro 我使用官方提供的 kernel 和 initramfs..
我的確很有事
因為我裝了很多系統 XD
意義勒
Just have fun.

還有就是每個 distro 的桌面等都有自己的配置,在 Void Linux / Arch Linux 安裝那些桌面的時候可以歲時參考那些配置。
按 distrowatch 提供的流行度排名裝的,目前裝完

下一個是 TrueOS 不支援 Btrfs 😅
你是要測試什麼鬼啦
設定檔直接抓套件來看就好了啊
🙈 目前還沒決定
Archlinux勒
從具體的 distro 的 repo 找 tar.gz 之類的解壓?
deb或rpm之類的啊
排名太後了,還沒裝到。

最前面的是 Void Linux
有了 Void Linux 就沒有太大必要裝 Arch Linux 了
這一定是假的排名,居然沒有Arch
我聽都沒聽過的void比arch前面一定搞錯了什麼
[sticker](media:AAQFABOJ_MAyAAQk3ClWwIWgIO4eAAIC@telegram)
😀 因為 Void Linux 我最喜歡用,所以放在了最前面。
Arch 不是那麼平易近人啊,不在很前面沒很意外吧?
阿不是還有m開頭那個打包好的
幹嘛這麼麻煩自己,用virtualbox之類的VM來裝就簡單了事,結案
而且arch明明超棒的,套件庫超齊全而且更新超快的
madriva?
mandriva
我想他是說 Manjaro
+1
這個排名中我比較意外的是 Solus 目前排在第八位,成長太迅速了。

目前我裝過的 distro 中,我覺得安裝過程最差的是 deepin 其次是 Solus

deepin 有自己的安裝界面,但是不支援 Btrfs,甚至不支援選擇 Keyboard Layout
deepin 也不支援 btrfs

(但是他們都可以備份整個系統然後修改 fstab 然後放到 btrfs 啟動)
之前wpa漏洞也是arch最快補好阿
deepin是ubuntu吧
基本上想要研究linux的話,鑽研完arch linux也不用再花時間學其他發行版本,因為arch差不多就是要用家compile所有東西
不喜歡用 Virtual Machine

我裝系統的時候用的是 qemu
個人感覺 qemu 比 VirtualBox 好一些..
我嚴重懷疑他的資料可靠性
阿幹那你就用KVM啊,總比全部裝實體方便多
linux的世界哪裡要看排名的XD
沒有這回事吧.-.
Factorio之外都沒聽過(躺
好像不一樣,deepin好像是拿ubuntu再製?忘了
Arch Linux 有太多 proprietary software

如果不是為了 AUR,可以考慮用 Void Linux or Alpine Linux
我雖然用 Arch 可是我都依賴 pacman 跟 yaourt,手動 Compile 的沒幾次(逃
呃...還是說那個是gentoo?
有差嗎,用起來好用就好了啊
全部裝實體也不算很麻煩啊..

而且 Btrfs subvolume 可以 send 然後保存到一個檔案備份..

KVM 為什麼會比較方便?怎麼用?
你都說qemu了
可能吧,我沒用過gentoo
哦,我在 qemu 好像有開啟 kvm..
別人被驅動搞半天的時候arch一行指令直接從官方套件庫裝好不是很棒嗎
哦,對了有個問題

用 Virtual Machine 的時候在 Host 和 Guest 傳輸檔案不方便,裝在硬碟能直接掛載訪問
官方沒有還有AUR
這小問題吧
VM傳檔解決方案要多少有多少
SFTP啦...(雖然我覺得你把網絡驅動都幹掉的可能性無限趨近於1.0🙈
這些都過多地依賴太多工具..
我目前傳檔是通過在 host 開啟 ssh 然後在 guest 通過 tar over ssh 傳過去
事實上傳檔是qemu內建的功能吧?
沒有發現這個功能
而且萬一是想要 guest 和 guest 之間傳檔呢 😀
實在太龜毛
總之裝在實體是最爽的。

VM 還要考慮大小問題。

Btrfs subvolume 最佳方式利用硬碟空間
這就是vbox好用的點了
他tools就包含這功能
VM的硬碟大小可以調整不是嗎?
那有比fs resize方便嗎...
但是要安裝 guest 的 tool?

我最不喜歡 vbox 的就是這個,在很多系統他給自動安裝(也許是發行版的安裝過程檢測到 virtualbox 然後安裝的)一些包和啟用一些服務。

這是我從 VirtualBox 換到 qemu 的原因。
可以不要用自動安裝阿
怎麼做?
你可以先建好VM再選iso.-.
tar和ssh也是包和服務,而且不少發行版都是自動裝上啟用
嗯,因為這個是被使用的可能性高,所以這是合理的..
正常人都會希望他系統裝好在VM裡就能有完整功能啊
但從你的觀點來看應該也算是多餘的,因為可以直接DD
VM的顯示驅動不是必裝的嗎
沒裝驅動效能也會減半吧
反正你都堅持裝實體了,DD最直接省事
我不是很理解你說的..
為什麼用 dd?
dd很乾淨啊,不會做多於的事
tar 和 ssh 對我來說非常必要。

因為我可以用來把 VM 里的東西傳到實體,
或者把 PC 的東西備份到 RPi 上的硬碟。
事實上kvm在guest也會裝驅動啊
virtio那些的
只不過包好包滿在kernel裡了
喔。
但是我已經有 Btrfs 了啊,而且 dd 無法完成 Btrfs 的多數功能。

我倒是有個地方用 dd
我有一個寫入性能比較差的很小巧的黑膠體隨身碟,我向整個隨身碟寫入了隨機數據,然後直接把加密的檔案 (7z) 用我的腳本寫入到隨身碟的制定範圍內的隨機地址。

這樣的話完全不需要任何檔案系統,只需要一個腳本就能完成寫入和讀取,其他人絕對無法獲取(寫入的 7z 有密碼,而且被抹掉了 file header
這個我不了解
你愛自找麻煩就讓你去吧,對我們來說測試一個系統開個VM最簡單方便了
至少系統爛掉不會炸整台電腦
簡單來說無論 Qemu 還是 Virtualbox 都有驅動啦,只是驅動在核心來源碼樹內還是樹外的差別而已
利用 VirtualBox 裝的系統,然後備份裝到實體,由於有 systemd 的 virtualbox 的 guest module 被添加並且被啟動。

在實體機啟動之後,會看到 systemd 的啟動失敗的那個 service,需要手動移除相關的包。

所以我用 qemu,在 qemu 沒這個問題。
vbox的驅動一般也有被收錄在官方套件庫就是了
由於我的系統就是塊 SSD 到處插別人電腦用,所以只能用通用的核心
真是棒呢,很Linux To Go
廢話,不是 VM 當然拒絕啟動
但是 qemu 沒這個問題,這是我想說的..
因為qemu的驅動在kernel阿,要是設計成非qemu就啟動失敗你不就整個kernel爛掉了
相對的,它寫成service啟動失敗就啟動失敗而已阿
不過 Qemu 客端支援沒有跟 Virtualbox 一樣吧, 像共享資料夾跟檔案拖進拉出 VM 之類的功能
其實真的那麼龜毛去用macOS如何?
連kernel panic都不會有任何錯誤訊息出現呢
我記得有個 open-vm-tools* 的包啊
可以給 VMware 和 VBox 用的
那個什麼s開頭的有
spice吧
那是純 VMware 用的喔
萬年不更新的那個
那不是只是顯示用的?
然後基本功能還可以用
有啦 macOS 要開 Debug Mode
大部分都進 kernel 了好像也沒必要更新就是
阿就最需要的掛載資料夾爛掉了阿wwww
沒啊
只是要在 /etc/fstab 多加一行而已
我記得有傳檔的功能
哦,我不是因為有 報錯 所以覺得不爽。

而是覺得我覺得那些包沒有必要(被強迫安裝了),有了那些包就和裝在實體機不一樣了。
qemu 的方式看起來優雅很多..
完全錯誤阿wwww
你把東西塞在kernel不是更影響效能嗎,假如你用不到那個kernel module的話
而且那完全不是沒有必要阿
能用和能正常用是兩回事
你顯卡沒裝驅動一樣能顯示畫面阿
說到虛擬化客端支援有沒有人知道有哪個實作支援在 Wayland 上支援 3D 算繪加速的嗎?
原來如此
你說的 kernel 是指 guest 的 kernel 要開啟一些 qemu 相關的支援,才能夠啟動嗎?

我想知道具體的哪個 kernel modules
那牽涉到KMS還什麼鬼的吧
KMS 是很必要的。

Wayland 也會用到, Intel 顯卡的驅動好像也可以用。
[photo](media:AgADAQADzqcxG4JxUEdvmrShIEXdvvYx9y8ABCchac9f8swJIGQAAgI@telegram)
問個
我的iptable都已經存進iptables.rules了
為什麼還會重開機被
清除?
感覺他今晚就會把它砍掉
然後它就死了
[sticker](media:AAQFABOyh8oyAAT7nPrT1yJ-KPQzAAIC@telegram)
拳四郎:
哦,謝謝。

原來我自己編譯的 Kernel 也開啟了 kvm 支援。
Kernel 又可以小一些了..
Right 🙊
🌚🌚🌚🌚🌚
JOJO,我不要再當VM了!
[sticker](media:AAQFABNIqL8yAAQiZSC93-4KTtoSAAIC@telegram)
是沒看過arch wiki的朋友呢
不管是Arch還是Gentoo, 一樣都有binary package,Arch預設安裝都是binary package,但是如果你想build world,也很容易,Gentoo是預設compile,但是你只想用binary package也不是不行

Arch使用至今已超過10年
原來如此🙇🏻
Btrfs的很多特性不是拿LVM可以比的,而且好像也沒人規定用了BTRFS就不能使用LVM,兩者放在一起用的人多的是

對我來說,BTRFS支援寫時crc效驗,對寫入資料的正確性有非常高的保障

比較不會發生,讀取沒問題,卻發生寫入錯誤的悲劇發生

這在以前,只有高階raid卡才有帶的功能,而且大部分使用皆有條件限制

不像BTRFS原生支援
BTRFS的儲存池跨物理儲存設備的能力,也不是一般raid卡,或San storage可以做的
Gentoo 只用 Binary package 不可能吧

比如 net-dialup/ppp dev-vcs/git ?
難道要自己創建一個 overlay 把所有需要的包都編譯好,然後從那個 overlay 安裝?

Gentoo 只有幾個使用者較多的或者編譯時間太長的才有編譯好的 binary packages
Void Linux 可以認為是介於 Arch Linux 和 Gentoo 之間的一個選擇。

Void Linux 像是提供給沒有時間 Gentoo 的人的,默認只有 Free Software,最基本的包比 Arch Linux 少,客製化比 Arch Linux 強。
而且提供 musl-lib 的包(有很多 DE/WM 可以用,而在 Gentoo 編譯的話非常麻煩,會遇到各種奇怪的問題)。


我發現的一點是 Void Linux 在命令行安裝過程中需要自己用 Dracut 創建 initramfs,而 root= 之類的相關信息被存在了 initramfs,意味着無需在 bootloader 定義任何的 command line ,只要 kernel 和 initramfs 被 bootloader 加載就能夠啟動。
(其他的 binary package 好像都是直接給出 initramfs 和更大一點的 initramfs-fallback)
https://bugzilla.gnome.org/show_bug.cgi?id=786884 關於 GTK 或 ibus 輸入 emoji 的探討,歡迎提供意見。
剛剛重新編譯了內核。

我好想並沒有真正開啟 KVM 支援。
LVM 和 snapshot 我本來就關掉了。
KVM 只有一個 CONFIG_HAVE_KVM=y 不能直接關掉,我覺得無所謂沒關。

然後主要關掉了 IOMMU (雖然不太確定,但是我覺得沒有不要開,等需要的時候再開啟也無妨...)

啟動 rEFInd 需要 2s
從 rEFInd 啟動 Void Linux 的 kernel & initramfs 需要用 4s 多,啟動 EFI stub kernel 需要的時間差不多。
EFI stub kernel 直接放到 EFI\BOOT\BOOTX64 啟動,需要 4s 多一點

從 rEFInd 啟動 Debian 提供的 krenel & initramfs 需要 6s

如果只用一個系統的話,自己編譯 Kernel 還是有意義的..
Happy 13th Birthday, Ubuntu! - OMG! Ubuntu!
http://www.omgubuntu.co.uk/2017/10/ubuntu-birthday-13th