![準備系統](https://rvso.com/image/1108664/%E6%BA%96%E5%82%99%E7%B3%BB%E7%B5%B1.png)
我有一個全新的 SSD,我想在上面安裝 12.04,並使用 nilfs 作為根分割區的檔案系統。
我找不到任何簡單的方法來做到這一點。如果我從 12.04 LiveCD 啟動,我可以安裝 nilfs-tools(我必須透過 wget 下載它——我似乎無法 apt-get)並且我能夠透過 mkfs.nilfs 將分割區格式化為 nilfs。
但是,當我單擊“安裝Ubuntu”並啟動安裝程式並告訴它我要選擇分割區時,它想要重新格式化它,並且只為我提供其他檔案系統(reiser、ext 等)的選項,但沒有nilfs,儘管nilfs 支援已安裝(我能夠在我的分割區上建立 nilfs 檔案系統)。
有什麼提示或建議嗎?
答案1
正如 Roland Taylor 指出的,您可以先使用安裝程式安裝到 ext4 分割區,然後將其傳輸到 nilfs 分割區。
為系統準備一個空閒分區。它將被安裝為/
,我們稱之為 NILFS。
而你需要另一個分割區來安裝Ubuntu,它可以是U碟或磁碟上的另一個分割區,我們稱之為EXT。
您不需要單獨的/boot
分割區,因為 Ubuntu 12.04 隨附的 grub 1.99 已經支援從 nilfs2 檔案系統啟動。
準備系統
您可以對 EXT 進行正常的 Ubuntu 安裝。
安裝nilfs-tools,並將空閒分割區格式化為nilfs2。
預設情況下,Ubuntu 的 initramfs 中沒有 nilfs 核心模組。
您需要重新產生它:
sudo echo nilfs2 >> /etc/initramfs-tools/modules
sudo update-initramfs -u
轉移系統
啟動至 Ubuntu 12.04 livecd。安裝 nilfs 工具。 (您需要先在軟體中心更改來源apt-get install nilfs-tools
。)
安裝 EXT 和 NILFS,然後複製您的系統:
sudo cp -ax /media/EXT/* /media/NILFS/*
(您可以使用rsync
它來代替。)
然後編輯你的/media/NILFS/etc/fstab
,改變行/
。 (更改 uuid、ext4->nilfs2。我建議添加noatime,async,discard
SSD 的掛載選項。)
然後編輯 grub 配置並重新安裝 grub。看烏班圖維基了解如何使用 grub 進行調整。請注意,您需要在重新安裝之前更改 grub 設定檔。我建議 chroot 到 NILFS,然後用來dpkg-reconfigure
更改配置並立即重新安裝。
現在您可以重新啟動到基於 nilfs2 的 Ubuntu 12.04! :-)
雖然我沒有測試過,但上面的說明應該有效。事實上,我已經使用相同的方法將 Ubuntu 10.04 從 ext3 轉移到 nilfs2。由於 Ubuntu 10.04 的 grub 不支援從 nilfs2 啟動,因此我使用 ext2 作為/boot
.但最近我下載了 Ubuntu 12.04 live cd 來測試 12.04 是否可以在我的上網本上運行。所以剛才我已經複製/boot/
回/
分區,更改了 grub 設定檔並使用 12.04 的 grub-install 重新安裝 grub。它成功了! (那麼也許我可以將無用的分離啟動分區變成一個小的交換分區?)
PS如果您不喜歡這種方法,您可以嘗試透過debootstrap安裝。我認為它也會起作用。
答案2
本質上,您目前還不能執行此操作,因為安裝程式不支援它。
從技術上講,可以將安裝從EXT4 轉移到NILFS(安裝到分割區,然後轉移到NILFS 分割區),但您還需要一個單獨的開機分割區(如您所看到的,這變得越來越複雜) 。
本質上,目前的答案是「你不能」。另外,請記住 NILFS 相當新,因此不太可能支持這樣的舉措。