Boot

從 lvm-cached 卷引導

  • July 28, 2019

我在這篇文章之後創建了一個記憶體池。這個過程似乎是成功的。

執行升級 grub 並重新啟動後,Grub 抱怨它找不到根卷(顯示 UUID)。- 我的錯,但我不記得這是原始卷的 ID 還是記憶體卷的 ID。

問題:是否有文章詳細說明使用記憶體卷作為根的任務?

以下Debian 論壇主題和基於它的部落格文章缺少資訊。

大綱

-1) 備份您的 LVM 配置並準備好類似的 CD。

0)確保您有一個單獨的/boot分區(您的記憶體根僅在以後可用)。這可以是一個 200MB 的分區,並且可以是與您的記憶體根目錄相同的 VG 的一部分。

1)您的核心映像(而不是模組)中需要 dm-cache。檢查你的配置並確保你有CONFIG_DM_CACHE=y. 如果它是一個模組(=m),您將需要重新編譯一個設置為y的核心。使用 menuconfig 並從那裡設置此選項可能是個好主意(它將確保 dm-cache 的依賴鏈也是=y)。

   Device Drivers  --->

   Generic Driver Options  --->

--- Multiple devices driver support (RAID and LVM)
<*>   Device mapper support
<*>     Cache target (EXPERIMENTAL)

2)安裝thin-provisioning-tools(將在啟動時在記憶體上執行類似 fsck的功能)。

  1. 創建一個包含/etc/initramfs-tools/hooks以下內容的文件。這將確保步驟 2 中的執行檔和一些依賴項位於您的 init ramdisk 映像中。
#!/bin/sh

PREREQ="lvm2"

prereqs()
{
   echo "$PREREQ"
}

case $1 in
prereqs)
   prereqs
   exit 0
   ;;
esac

if [ ! -x /usr/sbin/cache_check ]; then
   exit 0
fi

. /usr/share/initramfs-tools/hook-functions

copy_exec /usr/sbin/cache_check

manual_add_modules dm_cache dm_cache_mq
  1. 執行update-initramfs -u -k all以重新生成所有 initrd 映像。

引用自:https://unix.stackexchange.com/questions/173704