User Tools

Site Tools


huy:zfs_grub

Йесли вы праниклизь идеяй ставиць зыфысы в корень, то вирайатна рана или поздна вам придьоцца сталкнуцца с цем, што инагда эта грубайа скацина срьот в еррор ашыпкаме ципа

compression algorhytm not supported
sparse file not allowed
unsupported embedded BP
compression algoritm inherit not supported

эта патамушта какой-то ис пулаф садержыт фичи, каторые груб ниумеет

а праблема састаид фтом, што если абйом насраннава нивлазит в экран, то вывад идьот в more и загруска ниначинаецца, пака ис море ни выйци. аблом при УНИЗАПНАМ рибуце.

ришэнийэ - запрециць сраць грубу в err.

1. патчим груб

--- /root/grub2/grub-core/fs/zfs/zfs.c	2020-02-19 10:42:23.715333311 +0300
+++ /root/rpmbuild/SOURCES/grub-2.02/grub-core/fs/zfs/zfs.c	2020-02-19 13:58:10.905601671 +0300
@@ -1861,9 +1861,10 @@
   if (BP_IS_EMBEDDED(bp))
     {
       if (BPE_GET_ETYPE(bp) != BP_EMBEDDED_TYPE_DATA)
-	return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
-			   "unsupported embedded BP (type=%u)\n",
-			   BPE_GET_ETYPE(bp));
+	return GRUB_ERR_NONE;      
+	//return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
+	//		   "unsupported embedded BP (type=%u)\n",
+	//		   BPE_GET_ETYPE(bp));
       lsize = BPE_GET_LSIZE(bp);
       psize = BF64_GET_SB(grub_zfs_to_cpu64 ((bp)->blk_prop, endian), 25, 7, 0, 1);
     }
@@ -1880,11 +1881,13 @@
   if (size)
     *size = lsize;
 
-//  if (comp >= ZIO_COMPRESS_FUNCTIONS)
+  if (comp >= ZIO_COMPRESS_FUNCTIONS)
+    return GRUB_ERR_NONE;
 //    return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
 //		       "compression algorithm %u not supported\n", (unsigned int) comp);
 
-//  if (comp != ZIO_COMPRESS_OFF && decomp_table[comp].decomp_func == NULL)
+  if (comp != ZIO_COMPRESS_OFF && decomp_table[comp].decomp_func == NULL)
+    return GRUB_ERR_NONE;
 //    return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
 //		       "compression algorithm %s not supported\n", decomp_table[comp].name);

2. сабирайэм ГРУП

3. заминяйэм модули ГРУПа

rsync -av grub-2.02/grub-i386-pc-2.02/grub-core/ /usr/lib/grub/i386-pc/

4. пириустанавливаем ГРУП. приэтам он пирисабирьот core.img, фкаторам будзет правельный zfs.mod, атученный ат сранийа

grub2-install /dev/sda
huy/zfs_grub.txt · Last modified: 2020/02/19 13:04 by slayer