diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2016-12-24 13:06:31 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2016-12-24 13:06:31 +0000 |
commit | 792db2a65552e03dd9d04925bd52456b622b4e23 (patch) | |
tree | 6f4f33ea6ed9a7ebf1bf6ce4825af55bacd747c8 | |
parent | 040c669ab0f3a2661af4c49ed6d9506280107d93 (diff) | |
download | aports-792db2a65552e03dd9d04925bd52456b622b4e23.tar.bz2 aports-792db2a65552e03dd9d04925bd52456b622b4e23.tar.xz |
main/mkinitfs: fix zfs support
-rw-r--r-- | main/mkinitfs/0001-add-zpool-import-capability.patch | 121 | ||||
-rw-r--r-- | main/mkinitfs/APKBUILD | 12 |
2 files changed, 129 insertions, 4 deletions
diff --git a/main/mkinitfs/0001-add-zpool-import-capability.patch b/main/mkinitfs/0001-add-zpool-import-capability.patch new file mode 100644 index 0000000000..af280cd832 --- /dev/null +++ b/main/mkinitfs/0001-add-zpool-import-capability.patch @@ -0,0 +1,121 @@ +From be20737c8c6ca8b4ba94302f6b6c9725bc98565d Mon Sep 17 00:00:00 2001 +From: Mark Riedesel <mark@klowner.com> +Date: Sat, 17 Sep 2016 10:46:03 -0500 +Subject: [PATCH] add zpool import capability + +--- + features.d/zfs.files | 2 ++ + features.d/zfs.modules | 7 +++++++ + initramfs-init.in | 5 +++++ + nlplug-findfs.c | 17 +++++++++++++++-- + 4 files changed, 29 insertions(+), 2 deletions(-) + create mode 100644 features.d/zfs.files + create mode 100644 features.d/zfs.modules + +diff --git a/features.d/zfs.files b/features.d/zfs.files +new file mode 100644 +index 0000000..c821e15 +--- /dev/null ++++ b/features.d/zfs.files +@@ -0,0 +1,2 @@ ++/usr/sbin/zfs ++/usr/sbin/zpool +diff --git a/features.d/zfs.modules b/features.d/zfs.modules +new file mode 100644 +index 0000000..be5225a +--- /dev/null ++++ b/features.d/zfs.modules +@@ -0,0 +1,7 @@ ++extra/avl ++extra/nvpair ++extra/spl ++extra/unicode ++extra/zcommon ++extra/zfs ++extra/zpios +diff --git a/initramfs-init.in b/initramfs-init.in +index 64b1b5b..24a25c9 100755 +--- a/initramfs-init.in ++++ b/initramfs-init.in +@@ -363,6 +363,11 @@ if [ -n "$KOPT_nbd" ]; then + setup_nbd || echo "Failed to setup nbd device." + fi + ++if [ "$KOPT_rootfstype" = "zfs" ]; then ++ # zpool reports /dev/zfs missing if it can't read /etc/mtab ++ ln -s /proc/mounts /etc/mtab ++fi ++ + # check if root=... was set + if [ -n "$KOPT_root" ]; then + if [ "$SINGLEMODE" = "yes" ]; then +diff --git a/nlplug-findfs.c b/nlplug-findfs.c +index 7907389..7104d40 100644 +--- a/nlplug-findfs.c ++++ b/nlplug-findfs.c +@@ -51,11 +51,12 @@ + + #define LVM_PATH "/sbin/lvm" + #define MDADM_PATH "/sbin/mdadm" ++#define ZPOOL_PATH "/usr/sbin/zpool" + + static int dodebug; + static char *default_envp[2]; + char *argv0; +-static int use_mdadm, use_lvm; ++static int use_mdadm, use_lvm, use_zpool; + + #if defined(DEBUG) + #include <stdarg.h> +@@ -496,6 +497,15 @@ static void start_lvm2(char *devnode) + spawn_command(&spawnmgr, lvm2_argv, 0); + } + ++static void start_zpool(char *uuid) { ++ char *zpool_argv[] = { ++ ZPOOL_PATH, "import", uuid, ++ NULL ++ }; ++ if (use_zpool && uuid) ++ spawn_command(&spawnmgr, zpool_argv, 0); ++} ++ + static int read_pass(char *pass, size_t pass_size) + { + struct termios old_flags, new_flags; +@@ -913,6 +923,7 @@ static int searchdev(struct uevent *ev, const char *searchdev, int scanbootmedia + blkid_get_cache(&conf->blkid_cache, NULL); + + type = blkid_get_tag_value(conf->blkid_cache, "TYPE", ev->devnode); ++ uuid = blkid_get_tag_value(conf->blkid_cache, "UUID", ev->devnode); + + if (searchdev != NULL) { + if (strncmp("LABEL=", searchdev, 6) == 0) { +@@ -920,7 +931,6 @@ static int searchdev(struct uevent *ev, const char *searchdev, int scanbootmedia + if (label && strcmp(label, searchdev+6) == 0) + rc = FOUND_DEVICE; + } else if (strncmp("UUID=", searchdev, 5) == 0) { +- uuid = blkid_get_tag_value(conf->blkid_cache, "UUID", ev->devnode); + if (uuid && strcmp(uuid, searchdev+5) == 0) + rc = FOUND_DEVICE; + } +@@ -934,6 +944,8 @@ static int searchdev(struct uevent *ev, const char *searchdev, int scanbootmedia + start_mdadm(ev->devnode); + } else if (strcmp("LVM2_member", type) == 0) { + start_lvm2(ev->devnode); ++ } else if (strcmp("zfs_member", type) == 0) { ++ start_zpool(uuid); + } else if (scanbootmedia) { + rc = scandev(conf, ev->devnode, type); + } +@@ -1133,6 +1145,7 @@ int main(int argc, char *argv[]) + conf.uevent_timeout = DEFAULT_EVENT_TIMEOUT; + use_lvm = access(LVM_PATH, X_OK) == 0; + use_mdadm = access(MDADM_PATH, X_OK) == 0; ++ use_zpool = access(ZPOOL_PATH, X_OK) == 0; + + argv0 = strrchr(argv[0], '/'); + if (argv0++ == NULL) +-- +2.11.0 + diff --git a/main/mkinitfs/APKBUILD b/main/mkinitfs/APKBUILD index 4291a614d2..a5aa15a265 100644 --- a/main/mkinitfs/APKBUILD +++ b/main/mkinitfs/APKBUILD @@ -2,7 +2,7 @@ pkgname=mkinitfs pkgver=3.0.7 _ver=${pkgver%_git*} -pkgrel=1 +pkgrel=2 pkgdesc="Tool to generate initramfs images for Alpine" url="http://git.alpinelinux.org/cgit/mkinitfs" makedepends_build="" @@ -13,6 +13,7 @@ install="$pkgname.pre-upgrade $pkgname.post-install $pkgname.post-upgrade" triggers="$pkgname.trigger=/usr/share/kernel/*" source="http://dev.alpinelinux.org/archive/$pkgname/$pkgname-$_ver.tar.xz 0001-ext3-functionality-is-provided-by-ext4-module.patch + 0001-add-zpool-import-capability.patch " arch="all" license="GPL2" @@ -29,8 +30,11 @@ package() { } md5sums="f0ce066554bff1e1a3056c51f2fe4610 mkinitfs-3.0.7.tar.xz -79e61fce422c035296fdf00780f15fb3 0001-ext3-functionality-is-provided-by-ext4-module.patch" +79e61fce422c035296fdf00780f15fb3 0001-ext3-functionality-is-provided-by-ext4-module.patch +7099f430777d916852608ccae5dfd1c7 0001-add-zpool-import-capability.patch" sha256sums="eb80666fa1f2bb4907f13f7f4c09ee8e1b0b1211aba240c9d2a5cc2a1756f1ba mkinitfs-3.0.7.tar.xz -60ba082ac2a542e55de9e5a335f058fe83789ccb25bf8958772e229b93442a78 0001-ext3-functionality-is-provided-by-ext4-module.patch" +60ba082ac2a542e55de9e5a335f058fe83789ccb25bf8958772e229b93442a78 0001-ext3-functionality-is-provided-by-ext4-module.patch +e815e2ec1571e8f033c3ffaa429a8dbc7bac2fcc7d46e65ca382cc5142c32d56 0001-add-zpool-import-capability.patch" sha512sums="a4080f4709500484904aee34f93007a813c6f2470c8ba9a0493245122291e4c7460580f9ca2f3712662d8f8caea306872d0c79fa94f654300c4798a0332c19b2 mkinitfs-3.0.7.tar.xz -815e961b6508c8b6843b8074fa752b6ff7404c1ad0bb2e9ff03211d9c7d7546c7f274fb323934ae455216feb291b05e49f1c5878bc85480757d5b501577151c6 0001-ext3-functionality-is-provided-by-ext4-module.patch" +815e961b6508c8b6843b8074fa752b6ff7404c1ad0bb2e9ff03211d9c7d7546c7f274fb323934ae455216feb291b05e49f1c5878bc85480757d5b501577151c6 0001-ext3-functionality-is-provided-by-ext4-module.patch +cd395eed6bab80421891a0630c0969ce02bdbc725e3d1d24b0472888f3d847856a9e32f7b20ae41f3527a8c94696a61370396dc32c2dca15b3c837618a4310c9 0001-add-zpool-import-capability.patch" |