diff --git a/src/agent/Cargo.toml b/src/agent/Cargo.toml
index 3af1a2d1fd..8ac114c421 100644
--- a/src/agent/Cargo.toml
+++ b/src/agent/Cargo.toml
@@ -203,6 +203,7 @@ lto = true
seccomp = ["rustjail/seccomp"]
standard-oci-runtime = ["rustjail/standard-oci-runtime"]
agent-policy = ["kata-agent-policy"]
+init-data = []
[[bin]]
name = "kata-agent"
diff --git a/src/agent/Makefile b/src/agent/Makefile
index 0fed742b9b..35dc5b6aff 100644
--- a/src/agent/Makefile
+++ b/src/agent/Makefile
@@ -41,6 +41,14 @@ ifeq ($(AGENT_POLICY),yes)
override EXTRA_RUSTFEATURES += agent-policy
endif
+##VAR INIT_DATA=yes|no define if agent enables the init data feature
+INIT_DATA ?= yes
+
+# Enable the init data fature of rust build
+ifeq ($(INIT_DATA),yes)
+ override EXTRA_RUSTFEATURES += init-data
+endif
+
include ../../utils.mk
##VAR STANDARD_OCI_RUNTIME=yes|no define if agent enables standard oci runtime feature
diff --git a/src/agent/src/initdata.rs b/src/agent/src/initdata.rs
index cd4efa6be2..ddc563fc16 100644
--- a/src/agent/src/initdata.rs
+++ b/src/agent/src/initdata.rs
@@ -9,6 +9,7 @@
// SPDX-License-Identifier: Apache-2.0
//
+#[cfg(feature = "init-data")]
use std::{os::unix::fs::FileTypeExt, path::Path};
use anyhow::{bail, Context, Result};
@@ -37,8 +38,16 @@ pub const AA_CONFIG_PATH: &str = concatcp!(INITDATA_PATH, "/aa.toml");
pub const CDH_CONFIG_PATH: &str = concatcp!(INITDATA_PATH, "/cdh.toml");
/// Magic number of initdata device
+#[cfg(feature = "init-data")]
pub const INITDATA_MAGIC_NUMBER: &[u8] = b"initdata";
+#[cfg(not(feature = "init-data"))]
+async fn detect_initdata_device(logger: &Logger) -> Result