乔部落格

世界上有10种人:认识二进制的和不认识二进制的

Linux 初始 RAM 磁盘(initrd)概述

joe posted @ 2010年4月28日 18:56 in 嵌入式 with tags initrd , 2538 阅读

原文:http://www.ibm.com/developerworks/cn/linux/l-initrd.html

Linux® 初始 RAM 磁盘(initrd)是在系统引导过程中挂载的一个临时根文件系统,用来支持两阶段的引导过程。initrd 文件中包含了各种可执行程序和驱动程序,它们可以用来挂载实际的根文件系统,然后再将这个 initrd RAM 磁盘卸载,并释放内存。在很多嵌入式 Linux 系统中,initrd 就是最终的根文件系统。本文将探索 Linux 2.6 的初始 RAM 磁盘,包括如何创建以及如何在 Linux 内核中使用。

什么是初始 RAM 磁盘?

初始 RAM 磁盘(initrd)是在实际根文件系统可用之前挂载到系统中的一个初始根文件系统。initrd 与内核绑定在一起,并作为内核引导过程的一部分进行加载。内核然后会将这个 initrd 文件作为其两阶段引导过程的一部分来加载模块,这样才能稍后使用真正的文件系统,并挂载实际的根文件系统。

initrd 中包含了实现这个目标所需要的目录和可执行程序的最小集合,例如将内核模块加载到内核中所使用的 insmod 工具。

在桌面或服务器 Linux 系统中,initrd 是一个临时的文件系统。其生存周期很短,只会用作到真实文件系统的一个桥梁。在没有存储设备的嵌入式系统中,initrd 是永久的根文件系统。本文将对这两种情况进行探索。

 



   

 

initrd 剖析

initrd 映像中包含了支持 Linux 系统两阶段引导过程所需要的必要可执行程序和系统文件。

根据我们运行的 Linux 的版本不同,创建初始 RAM 磁盘的方法也可能会有所不同。在 Fedora Core 3 之前,initrd 是使用 loop 设备 来构建的。loop 设备 是一个设备驱动程序,利用它可以将文件作为一个块设备挂载到系统中,然后就可以查看这个文件系统中的内容了。在您的内核中可能并没有 loop 设备,不过这可以通过内核配置工具(make menuconfig)选择 Device Drivers > Block Devices > Loopback Device Support 来启用。我们可以按照下面的方法来查看 loop 设备的内容(initrd 文件的名字可能会稍有不同):


清单 1. 查看 initrd 的内容(适用于 FC3 之前的版本)

# mkdir temp ; cd temp
# cp /boot/initrd.img.gz .
# gunzip initrd.img.gz
# mount -t ext -o loop initrd.img /mnt/initrd
# ls -la /mnt/initrd
#

 

现在我们就可以查看 /mnt/initrd 子目录中的内容了,这就代表了 initrd 文件的内容。注意,即使您的 initrd 映像文件不是以 .gz 结尾,它也可能是一个压缩文件,您可以给这个文件添加上 .gz 后缀,然后再使用 gunzip 对其进行解压。

从 Fedora Core 3 开始,默认的 initrd 映像变成了一个经过压缩的 cpio 归档文件。我们不用再使用 loop 设备来将 initrd 作为压缩映像进行挂载,而是可以将其作为 cpio 归档文件来使用。要查看 cpio 归档文件的内容,可以使用下面的命令:


清单 2. 查看 initrd 的内容(适用于 FC3 及其以后的版本)

# mkdir temp ; cd temp
# cp /boot/initrd-2.6.14.2.img initrd-2.6.14.2.img.gz
# gunzip initrd-2.6.14.2.img.gz
# cpio -i --make-directories < initrd-2.6.14.2.img
#

 

结果会生成一个很小的根文件系统,如清单 3 所示。在 ./bin 目录中有一组很少但却非常必要的应用程序,包括 nash(即 not a shell,是一个脚本解释器)、insmod(用来加载内核模块)和 lvm(逻辑卷管理工具)。


清单 3. 默认的 Linux initrd 目录结构

# ls -la
#
drwxr-xr-x  10 root root    4096 May 7 02:48 .
drwxr-x---  15 root root    4096 May 7 00:54 ..
drwxr-xr-x  2  root root    4096 May 7 02:48 bin
drwxr-xr-x  2  root root    4096 May 7 02:48 dev
drwxr-xr-x  4  root root    4096 May 7 02:48 etc
-rwxr-xr-x  1  root root     812 May 7 02:48 init
-rw-r--r--  1  root root 1723392 May 7 02:45 initrd-2.6.14.2.img
drwxr-xr-x  2  root root    4096 May 7 02:48 lib
drwxr-xr-x  2  root root    4096 May 7 02:48 loopfs
drwxr-xr-x  2  root root    4096 May 7 02:48 proc
lrwxrwxrwx  1  root root       3 May 7 02:48 sbin -> bin
drwxr-xr-x  2  root root    4096 May 7 02:48 sys
drwxr-xr-x  2  root root    4096 May 7 02:48 sysroot
#

 

清单 3 中比较有趣的是 init 文件就在根目录中。与传统的 Linux 引导过程类似,这个文件也是在将 initrd 映像解压到 RAM 磁盘中时被调用的。在本文稍后我们将来探索这个问题。

 



   

 

创建 initrd 所使用的工具

cpio 命令

使用 cpio 命令,我们可以对 cpio 文件进行操作。cpio 是一种文件格式,它简单地使用文件头将一组文件串接在一起。cpio 文件格式可以使用 ASCII 和二进制文件。为了保证可移植性,我们可以使用 ASCII 格式。为了减小文件大小,我们可以使用二进制的版本。

下面让我们回到最开始,来看一下 initrd 映像最初是如何构建的。对于传统的 Linux 系统来说,initrd 映像是在 Linux 构建过程中创建的。有很多工具,例如 mkinitrd,都可以用来使用必要的库和模块自动构建 initrd,从而用作与真实的根文件系统之间的桥梁。mkinitrd 工具实际上就是一个 shell 脚本,因此我们可以看到它究竟是如何来实现这个结果的。还有一个 YAIRD(即 Yet Another Mkinitrd)工具,可以对 initrd 构建过程的各个方面进行定制。

 



   

 

手工构建定制的初始 RAM 磁盘

由于在很多基于 Linux 的嵌入式系统上没有硬盘,因此 initrd 也会作为这种系统上的永久根文件系统使用。清单 4 显示了如何创建一个 initrd 映像文件。我使用了一个标准的 Linux 桌面,这样您即使没有嵌入式平台,也可以按照下面的步骤来执行了。除了交叉编译,其他概念(也适用于 initrd 的构建)对于嵌入式平台都是相同的。


清单 4. 创建定制 initrd 的工具(mkird)

#!/bin/bash

# Housekeeping...
rm -f /tmp/ramdisk.img
rm -f /tmp/ramdisk.img.gz

# Ramdisk Constants
RDSIZE=4000
BLKSIZE=1024

# Create an empty ramdisk image
dd if=/dev/zero of=/tmp/ramdisk.img bs=$BLKSIZE count=$RDSIZE

# Make it an ext2 mountable file system
/sbin/mke2fs -F -m 0 -b $BLKSIZE /tmp/ramdisk.img $RDSIZE

# Mount it so that we can populate
mount /tmp/ramdisk.img /mnt/initrd -t ext2 -o loop=/dev/loop0

# Populate the filesystem (subdirectories)
mkdir /mnt/initrd/bin
mkdir /mnt/initrd/sys
mkdir /mnt/initrd/dev
mkdir /mnt/initrd/proc

# Grab busybox and create the symbolic links
pushd /mnt/initrd/bin
cp /usr/local/src/busybox-1.1.1/busybox .
ln -s busybox ash
ln -s busybox mount
ln -s busybox echo
ln -s busybox ls
ln -s busybox cat
ln -s busybox ps
ln -s busybox dmesg
ln -s busybox sysctl
popd

# Grab the necessary dev files
cp -a /dev/console /mnt/initrd/dev
cp -a /dev/ramdisk /mnt/initrd/dev
cp -a /dev/ram0 /mnt/initrd/dev
cp -a /dev/null /mnt/initrd/dev
cp -a /dev/tty1 /mnt/initrd/dev
cp -a /dev/tty2 /mnt/initrd/dev

# Equate sbin with bin
pushd /mnt/initrd
ln -s bin sbin
popd

# Create the init file
cat >> /mnt/initrd/linuxrc << EOF
#!/bin/ash
echo
echo "Simple initrd is active"
echo
mount -t proc /proc /proc
mount -t sysfs none /sys
/bin/ash --login
EOF

chmod +x /mnt/initrd/linuxrc

# Finish up...
umount /mnt/initrd
gzip -9 /tmp/ramdisk.img
cp /tmp/ramdisk.img.gz /boot/ramdisk.img.gz

 

initrd Linux 发行版

Minimax 是一个开放源码项目,其设计目标是成为一个全部封装在 initrd 中的 Linux 发行版。它的大小是 32MB,为了尽量小,它使用了 BusyBox 和 uClibc。除了非常小之外,它还使用了 2.6 版本的 Linux 内核,并提供了很多有用的工具。

为了创建 initrd,我们最开始创建了一个空文件,这使用了 /dev/zero(一个由零组成的码流)作为输入,并将其写入到 ramdisk.img 文件中。所生成的文件大小是 4MB(4000 个 1K 大小的块)。然后使用 mke2fs 命令在这个空文件上创建了一个 ext2(即 second extended)文件系统。现在这个文件变成了一个 ext2 格式的文件系统,我们使用 loop 设备将这个文件挂载到 /mnt/initrd 上了。在这个挂载点上,我们现在就有了一个目录,它以 ext2 文件系统的形式呈现出来,我们可以对自己的 initrd 文件进行拼装了。接下来的脚本提供了这种功能。

下一个步骤是创建构成根文件系统所需要的子目录:/bin、/sys、/dev 和 /proc。这里只列出了所需要的目录(例如没有库),但是其中包含了很多功能。

ext2 文件系统的替代品

尽管 ext2 是一种通用的 Linux 文件系统格式,但是还有一些替代品可以减小 initrd 映像文件以及所挂载上来的文件系统的大小。这种文件系统的例子有 romfs(ROM 文件系统)、cramfs(压缩 ROM 文件系统)和 squashfs(高度压缩只读文件系统)。如果我们需要暂时将数据写入文件系统中,ext2 可以很好地实现这种功能。最后,e2compr 是 ext2 文件系统驱动程序的一个扩展,可以支持在线压缩。

为了可以使用根文件系统,我们使用了 BusyBox。这个工具是一个单一映像,其中包含了很多在 Linux 系统上通常可以找到的工具(例如 ash、awk、sed、insmod 等)。BusyBox 的优点是它将很多工具打包成一个文件,同时还可以共享它们的通用元素,这样可以极大地减少映像文件的大小。这对于嵌入式系统来说非常理想。将 BusyBox 映像从自己的源目录中拷贝到自己根目录下的 /bin 目录中。然后创建了很多符号链接,它们都指向 BusyBox 工具。BusyBox 会判断所调用的是哪个工具,并执行这个工具的功能。我们在这个目录中创建了几个链接来支持 init 脚本(每个命令都是一个指向 BusyBox 的链接。)

下一个步骤是创建几个特殊的设备文件。我从自己当前的 /dev 子目录中直接拷贝了这些文件,这使用了 -a 选项(归档)来保留它们的属性。

倒数第二个步骤是生成 linuxrc 文件。在内核挂载 RAM 磁盘之后,它会查找 init 文件来执行。如果没有找到 init 文件,内核就会调用 linuxrc 文件作为自己的启动脚本。我们在这个文件中实现对环境的基本设置,例如挂载 /proc 文件系统。除了 /proc 之外,我还挂载了 /sys 文件系统,并向终端打印一条消息。最后,我们调用了 ash(一个 Bourne Shell 的克隆),这样就可以与根文件系统进行交互了。linuxrc 文件然后使用 chmod 命令修改成可执行的。

最后,我们的根文件系统就完成了。我们将其卸载掉,然后使用 gzip 对其进行压缩。所生成的文件(ramdisk.img.gz)被拷贝到 /boot 子目录中,这样就可以通过 GNU GRUB 对其进行加载了。

要构建初始 RAM 磁盘,我们可以简单地调用 mkird,这样就会自动创建这个映像文件,并将其拷贝到 /boot 目录中。

 



   

 

测试定制的初始 RAM 磁盘

Linux 内核中对 initrd 的支持

对于 Linux 内核来说,要支持初始 RAM 磁盘,内核必须要使用 CONFIG_BLK_DEV_RAMCONFIG_BLK_DEV_INITRD 选项进行编译。

新的 initrd 映像现在已经在 /boot 目录中了,因此下一个步骤是使用默认的内核来对其进行测试。现在我们可以重新启动 Linux 系统了。在出现 GRUB 界面时,按 C 键启动 GRUB 中的命令行工具。我们现在可以与 GRUB 进行交互,从而定义要加载哪个内核和 initrd 映像文件。kernel 命令让我们可以指定内核文件,initrd 命令可以用来指定 initrd 映像文件。在定义好这些参数之后,就可以使用 boot 命令来引导内核了,如清单 5 所示。


清单 5. 使用 GRUB 手工引导内核和 initrd

    GNU GRUB  version 0.95  (638K lower / 97216K upper memory)

[ Minimal BASH-like line editing is supported. For the first word, TAB
  lists possible command completions. Anywhere else TAB lists the possible
  completions of a device/filename. ESC at any time exits.]

grub> kernel /bzImage-2.6.1
   [Linux-bzImage, setup=0x1400, size=0x29672e]

grub> initrd /ramdisk.img.gz
   [Linux-initrd @ 0x5f2a000, 0xb5108 bytes]

grub> boot

Uncompressing Linux... OK, booting the kernel.

 

在内核启动之后,它会检查是否有 initrd 映像文件可用(稍后会更详细介绍),然后将其加载,并将其挂载成根文件系统。在清单 6 中我们可以看到这个 Linux 启动过程最后的样子。在启动之后,ash shell 就可以用来输入命令了。在这个例子中,我们将浏览一下根文件系统的内容,并查看一下虚拟 proc 文件系统中的内容。我们还展示了如何通过 touch 命令在文件系统中创建文件。注意所创建的第一个进程是 linuxrc(通常都是 init)。


清单 6. 使用简单的 initrd 引导 Linux 内核

...
md: Autodetecting RAID arrays
md: autorun
md: ... autorun DONE.
RAMDISK: Compressed image found at block 0
VFS: Mounted root (ext2 file system).
Freeing unused kernel memory: 208k freed
/ $ ls
bin         etc       linuxrc       proc        sys
dev         lib       lost+found    sbin
/ $ cat /proc/1/cmdline
/bin/ash/linuxrc
/ $ cd bin
/bin $ ls
ash      cat      echo     mount    sysctl
busybox  dmesg    ls       ps
/bin $ touch zfile
/bin $ ls
ash      cat      echo     mount    sysctl
busybox  dmesg    ls       ps       zfile

 



   

 

使用初始 RAM 磁盘来引导系统

现在我们已经了解了如何构建并使用定制的初始 RAM 磁盘,本节将探索内核是如何识别 initrd 并将其作为根文件系统进行挂载的。我们将介绍启动链中的几个主要函数,并解释一下到底在进行什么操作。

引导加载程序,例如 GRUB,定义了要加载的内核,并将这个内核映像以及相关的 initrd 拷贝到内存中。我们可以在 Linux 内核源代码目录中的 ./init 子目录中找到很多这种功能。

在内核和 initrd 映像被解压并拷贝到内存中之后,内核就会被调用了。它会执行不同的初始化操作,最终您会发现自己到了 init/main.c:init()(subdir/file:function)函数中。这个函数执行了大量的子系统初始化操作。此处会执行一个对 init/do_mounts.c:prepare_namespace() 的调用,这个函数用来准备名称空间(挂载 dev 文件系统、RAID 或 md、设备以及最后的 initrd)。加载 initrd 是通过调用 init/do_mounts_initrd.c:initrd_load() 实现的。

initrd_load() 函数调用了 init/do_mounts_rd.c:rd_load_image(),它通过调用 init/do_mounts_rd.c:identify_ramdisk_image() 来确定要加载哪个 RAM 磁盘。这个函数会检查映像文件的 magic 号来确定它是 minux、etc2、romfs、cramfs 或 gzip 格式。在返回到 initrd_load_image 之前,它还会调用 init/do_mounts_rd:crd_load()。这个函数负责为 RAM 磁盘分配空间,并计算循环冗余校验码(CRC),然后对 RAM 磁盘映像进行解压,并将其加载到内存中。现在,我们在一个适合挂载的块设备中就有了这个 initrd 映像。

现在使用一个 init/do_mounts.c:mount_root() 调用将这个块设备挂载到根文件系统上。它会创建根设备,并调用 init/do_mounts.c:mount_block_root()。在这里调用 init/do_mounts.c:do_mount_root(),后者又会调用 fs/namespace.c:sys_mount() 来真正挂载根文件系统,然后 chdir 到这个文件系统中。这就是我们在清单 6 中所看到的熟悉消息 VFS: Mounted root (ext2 file system). 的地方。

最后,返回到 init 函数中,并调用 init/main.c:run_init_process。这会导致调用 execve 来启动 init 进程(在本例中是 /linuxrc)。linuxrc 可以是一个可执行程序,也可以是一个脚本(条件是它有脚本解释器可用)。

这些函数的调用层次结构如清单 7 所示。尽管此处并没有列出拷贝和挂载初始 RAM 磁盘所涉及的所有函数,但是这足以为我们提供一个整体流程的粗略框架。


清单 7. initrd 加载和挂载过程中所使用的主要函数的层次结构

init/main.c:init
  init/do_mounts.c:prepare_namespace
    init/do_mounts_initrd.c:initrd_load
      init/do_mounts_rd.c:rd_load_image
        init/do_mounts_rd.c:identify_ramdisk_image
        init/do_mounts_rd.c:crd_load
          lib/inflate.c:gunzip
    init/do_mounts.c:mount_root
      init/do_mounts.c:mount_block_root
         init/do_mounts.c:do_mount_root
           fs/namespace.c:sys_mount
  init/main.c:run_init_process
    execve

 



   

 

无盘引导

与嵌入式引导的情况类似,本地磁盘(软盘或 CD-ROM)对于引导内核和 ramdisk 根文件系统来说都不是必需的。DHCP(Dynamic Host Configuration Protocol)可以用来确定网络参数,例如 IP 地址和子网掩码。TFTP(Trivial File Transfer Protocol)可以用来将内核映像和初始 ramdisk 映像传输到本地设备上。传输完成之后,就可以引导 Linux 内核并挂载 initrd 了,这与本地映像引导的过程类似。

 



   

 

压缩 initrd

在构建嵌入式系统时,我们可能希望将 initrd 映像文件做得尽可能小,这其中有一些技巧需要考虑。首先是使用 BusyBox(本文中已经展示过了)。BusyBox 可以将数 MB 的工具压缩成几百 KB。

在这个例子中,BusyBox 映像是静态链接的,因此它不需要其他库。然而,如果我们需要标准的 C 库(我们自己定制的二进制可能需要这个库),除了巨大的 glibc 之外,我们还有其他选择。第一个较小的库是 uClibc,这是为对空间要求非常严格的系统准备的一个标准 C 库。另外一个适合空间紧张的环境的库是 dietlib。要记住我们需要使用这些库来重新编译想在嵌入式系统中重新编译的二进制文件,因此这需要额外再做一些工作(但是这是非常值得的)。

 



   

 

结束语

初始 RAM 磁盘最初是设计用来通过一个临时根文件系统来作为内核到最终的根文件系统之间的桥梁。initrd 对于在嵌入式系统中加载到 RAM 磁盘里的非持久性根文件系统来说也非常有用。

Call girl friendship 说:
2022年6月04日 13:35

Excellent Blog! I would like to thank you for the efforts you have made in writing this post.
http://www.callgirlfriendrelationship.com/
http://www.callgirlfriendrelationship.com/desi-sexy-video.html
http://www.callgirlfriendrelationship.com/unsatisfied-aunty-number.html
http://www.callgirlfriendrelationship.com/night-partner-in-hyderabad-call-girls.html
http://www.callgirlfriendrelationship.com/bangalore-call-girl-number.html

mryakapoor 说:
2022年9月19日 17:30
Much thanks to you for this brilliant post! Escort in Bangalore   It has for quite some time been very useful. I wish that you will continue posting your insight with us gratitude for sharing this post. Bangalore Female Escorts || 
SONAMSINGH 说:
2022年9月19日 17:32
I see your post and reed. This is great for me this is a decent post you give a piece of Escort in Bangalore extraordinary data and supportive gratitude for sharing this side. Bangalore Female Escorts || Bangalore Escort || Escorts Service in Bangalore || Independent Escorts in Bangalore ||

 

 
BANGALORE ESCORTS 说:
2022年9月19日 17:34
I came to this site with the introduction of a friend around me  and I was very impressed when I found your writing. I'll come back often after bookmarking! Begur Escorts || Ulsoor Escorts || Hesaraghatta Lake Escorts || Brigade Road Escorts || Koramangala Escorts || Cunningham Road Escorts || Jp Nagar Escorts || Nandini Layout Escorts ||
ESCORTS IN BANGALORE 说:
2022年9月19日 17:36
Thanks you very much for sharing these links. Will definitely check this out.
https://sonamsingh.rajce.idnes.cz/profil/informace
https://joyrulez.com/myrakapoor
https://pinshape.com/users/2433033-sonam-singh#designs-tab-open
https://8tracks.com/bangloreescorts/
https://www.vingle.net/posts/4719151
https://friend007.com/read-blog/36097
https://myworldgo.com/blog/41096/bangalore-escort
https://participate.oidp.net/profiles/sonam/followers
https://linkgeanie.com/profile/myrakapoor
https://community.teltonika-networks.com/user/myrakpoor
https://www.gearheadworkshops.com/profile/itssonamsingh5566/profile
https://www.montenegro-canada.com/board/board_topic/4747136/5733900.htm
https://www.techrum.vn/members/kapoormyra.218720/#about
https://www.zerohedge.com/user/Ap8rAPMK0CVHeCuRM0aiRMF96gJ3
https://buyersguide.americanbar.org/profile/416840/0
https://www.instantencore.com/user/details.aspx?User=sonia+singh
https://www.metroflog.co/sonamsingh
https://www.instapaper.com/u/folder/4658971/bangalore-escorts-our-agenc…
https://www.xing.com/discover/your-posts
http://community.getvideostream.com/topic/77623/bangalore-escorts-indep…
https://techplanet.today/post/bangalore-escort
https://www.youmagine.com/sonamsingh/designs
https://sketchfab.com/myrakapoor
https://coub.com/myrakapoor
https://techplanet.today/member/myra-kapoor
https://www.agentpet.com/forum/discussion/general/hot-sexy-girls-availa…
https://www.sbnation.com/users/MyraKapoor@
https://startupmatcher.com/p/myrakapoor
https://issuu.com/myrakapoor?issuu_product=header&issuu_context=link&is…
https://in.pinterest.com/itssonamsingh5566/
https://www.openstreetmap.org/user/Myrakapoor
https://www.boredpanda.com/author/sonamsingh_1/?utm_source=autr3.partwb…
https://coolors.co/u/Bangalore_Escorts1
https://www.behance.net/bangaloescorts15
https://www.scoop.it/u/itssonamsingh5566-gmail-com
https://www.4shared.com/u/V6Mqex8A/itsmyrakapoor.html

 

natashaarora 说:
2022年9月21日 16:20

I'm delighted to track down such a ton of supportive information here in the post. especially so ecstatic atrial and call young woman so a fair post and a very looking young woman post and kissing affiliations. thankful to you for sharing the post.
<a href="https://www.elitepassion.club/call-girls/hyatt-centric-janakpuri">Escorts in Hyatt Centric Janakpuri</a>
<a href="https://www.elitepassion.club/call-girls/hyatt-delhi-residences-aerocity">Hyatt Delhi Residences Aerocity Escorts</a>
<a href="https://www.elitepassion.club/call-girls/hyatt-regency-delhi-bhikaji">Call Girls in Hyatt Regency Delhi Bhikaji</a>
<a href="https://www.elitepassion.club/call-girls/ibis-new-delhi-aerocity">Ibis New Delhi Aerocity Call Girls</a>
<a href="https://www.elitepassion.club/call-girls/itc-maurya-hotel-delhi">Escorts in ITC Maurya Hotel Delhi</a>
<a href="https://www.elitepassion.club/call-girls/jaypee-vasant-continental-hotel">Jaypee Vasant Continental Hotel Escorts</a>
<a href="https://www.elitepassion.club/call-girls/jp-hotel-and-resorts-delhi">Call Girls in JP Hotel And Resorts Delhi</a>
<a href="https://www.elitepassion.club/call-girls/jw-marriott-hotel-new-delhi-aerocity">JW Marriott Hotel New Delhi Aerocity Call Girls</a>
<a href="https://www.elitepassion.club/call-girls/le-meridien-hotel-delhi">Escorts in Le Meridien Hotel Delhi</a>
<a href="https://www.elitepassion.club/call-girls/lemon-tree-premier-delhi">Lemon Tree Premier Delhi Escorts</a>

natashaarora 说:
2022年9月21日 16:21

I have been checking your blog site page for any regardless of the way that right now, would seem like customary I focus on something new Thanks
[url=https://www.elitepassion.club/call-girls/hyatt-centric-janakpuri]Escorts in Hyatt Centric Janakpuri[/url]
[url=https://www.elitepassion.club/call-girls/hyatt-delhi-residences-aerocity]Hyatt Delhi Residences Aerocity Escorts[/url]
[url=https://www.elitepassion.club/call-girls/hyatt-regency-delhi-bhikaji]Call Girls in Hyatt Regency Delhi Bhikaji[/url]
[url=https://www.elitepassion.club/call-girls/ibis-new-delhi-aerocity]Ibis New Delhi Aerocity Call Girls[/url]
[url=https://www.elitepassion.club/call-girls/itc-maurya-hotel-delhi]Escorts in ITC Maurya Hotel Delhi[/url]
[url=https://www.elitepassion.club/call-girls/jaypee-vasant-continental-hotel]Jaypee Vasant Continental Hotel Escorts[/url]
[url=https://www.elitepassion.club/call-girls/jp-hotel-and-resorts-delhi]Call Girls in JP Hotel And Resorts Delhi[/url]
[url=https://www.elitepassion.club/call-girls/jw-marriott-hotel-new-delhi-aerocity]JW Marriott Hotel New Delhi Aerocity Call Girls[/url]
[url=https://www.elitepassion.club/call-girls/le-meridien-hotel-delhi]Escorts in Le Meridien Hotel Delhi[/url]
[url=https://www.elitepassion.club/call-girls/lemon-tree-premier-delhi]Lemon Tree Premier Delhi Escorts[/url]

soniya 说:
2022年9月21日 16:22

<a href="https://www.elitepassion.club/call-girls/aloft-hotel-new-delhi-aerocity">Aloft Hotel New Delhi Aerocity Call Girls</a> 

[url=https://www.elitepassion.club/call-girls/aloft-hotel-new-delhi-aerocity]Escorts in Aloft Hotel New Delhi Aerocity[/url]

NCERT Sanskrit Quest 说:
2022年9月21日 20:34

The most revered and vital language in the nation is Sanskrit. The majority of the seventh-grade pupils have selected it as their second or third language since it is one of the languages used most often in upper primary education. NCERT Sanskrit Question Paper Class 7 For students in the Central Board Schools and other regional state boards enrolled in the seventh grade, NCERT has created and made available Sanskrit language study and learning materials.

Aliyaarora 说:
2022年9月27日 20:06

The expenses of Escort adult relationship with these Bangalore Escorts Girls are nothing after you measure your darling utilization.<a href="http://www.bangalore-escort.org/">Bangalore Escorts Service</a>||
<a href="http://www.hotbangaloreescorts.in/">Escorts in Bangalore</a>||
<a href="http://www.vipbangalorescorts.com/">Escort in Bangalore</a>||
<a href="http://www.blrescorts.in/">Escorts Service in Bangalore</a>||
<a href="http://www.escortsbangalore.co.in/">Escort Service in Bangalore</a>||
<a href="http://www.miky.in/">Escorts Bangalore</a>||
<a href="http://bangaloreescortsgirls.com/">Escorts Service Bangalore</a>||
<a href="http://www.richaescorts.in/">Escort Bangalore</a>||
<a href="http://www.komalsharma.in/">Escort Service Bangalore</a>||
<a href="https://www.ankithbangaloreescorts.com/">Bangalore Escorts</a>||
<a href="http://bangloreescortservice.com/">Bangalore Escort</a>||
<a href="http://www.hindikahani.co.in/">Sex kahani Hindi Mei</a>||
<a href="http://www.bangaloreescortsservice.net/">Bangalore Escort Service</a>|| Its first class the strategy that estimation of money has taken a date that total rate depends upon on upon your call.

Aliyaarora 说:
2022年9月27日 20:07

We have one of the hottest Call Girls in Bangalore and have each kind of escort service to offer. With regards to young ladies,Escort in Bangalore|| Escorts Service in Bangalore|| Escort Service in Bangalore|| Escorts Bangalore|| Escorts Service Bangalore|| Escort Bangalore|| Escort Service Bangalore|| Bangalore Escorts|| Bangalore Escort|| Bangalore Escort Service|| Bangalore Escorts Service|| Kamasutra Story|| Escorts in Bangalore||| with the world celebrated night life.

Vip Escorts in Delhi 说:
2022年9月30日 14:40

I'm extremely stunned after seen your best help . be caring your data sharing you truly awesome work posting

swatisingh 说:
2022年10月13日 16:22

I see your post and reed. This is good for me this is a good post you give a piece of great information and helpful thanks for sharing this side.
<a href="https://www.nightangels.in/escorts/south-delhi">South Delhi Escorts</a> ||
<a href="https://www.nightangels.in/escorts/south-ex">Escorts Service in South Ex</a> ||
<a href="https://www.nightangels.in/escorts/rewari">Rewari Escorts</a> ||
<a href="https://www.nightangels.in/escorts/karol-bagh">Karol Bagh Escorts</a> ||
<a href="https://www.nightangels.in/escorts/agra">Escorts in Agra</a> ||
<a href="https://www.nightangels.in/escorts/ahmedabad">Escorts in Ahmedabad</a> ||

Russian Escorts in D 说:
2022年11月06日 16:19

Hi am pooja sharma accompanies relative which gives you best to best assistance with accompanies. Administration is constantly given on our site, at whatever point you need, you can get it on our site

Mumbai Escorts 说:
2022年11月22日 17:58

This is a great inspiring article.I am pretty much pleased with your good work.You put really very helpful information. Keep it up. Keep blogging. Looking to reading your next post. Mumbai Escorts || Borivali Escorts Service || Gulmohar Road Escorts || Azad Nagar Escorts || Bandra East Escorts || Bhiwandi Escorts ||

nidhisani 说:
2022年12月15日 22:24

I read your article and find you article is brimming with data. Continue to post that is exceptionally useful for those individuals who is searching for these sort of data.
<a href="https://www.delhiescortsguide.com/">Delhi Escort</a> 6
<a href="http://www.newdelhiescortsgirl.com/">Escort in Delhi</a>
<a href="https://www.bookdelhiescorts.com/">Delhi Escort Service</a>
<a href="https://www.delhi-female-escort.com/">Escort Service in Delhi</a>
<a href="https://www.royalescortsdelhi.com/">Escort Service Delhi</a>

nidhisani 说:
2022年12月15日 22:25

I read your article and find you article is brimming with data. Continue to post that is exceptionally useful for those individuals who is searching for these sort of data.
[url=https://www.delhiescortsguide.com/]Delhi Escort[/url]
[url=http://www.newdelhiescortsgirl.com/]Escort in Delhi[/url]
[url=https://www.bookdelhiescorts.com/]Delhi Escort Service[/url]
[url=https://www.delhi-female-escort.com/]Escort Service in Delhi[/url]
[url=https://www.royalescortsdelhi.com/]Escort Service Delhi[/url]

Bangalore Escorts 说:
2023年1月07日 20:33

We are not trying to harm any girl in Bangalore Escorts services by publishing this article. We just had a good experience with the girls in Bangalore escorts service when we went for a trip to India from Australia. We are from Australia and we had a good time in India.  Bangalore Escorts || Delhi Escort || Goa Escort Service || Escorts in Lucknow || Escorts Service in Mumbai || Jaipur Escort Service ||

Shivaniroy 说:
2023年1月19日 18:02

Thank you for such a well written article. It’s full of insightful information and entertaining descriptions. Your point of view is the best among many.
Very informative post! There is a lot of information here that can help any business get started with a successful social networking campaign
<a href="https://www.elitepassion.club/call-girls/andheri">Andheri call girls service</a>
<a href="https://www.elitepassion.club/call-girls/bandra">Bandra Escorts Service</a>
<a href="https://www.elitepassion.club/call-girls/belapur">Belapur call girls </a>
<a href="https://www.elitepassion.club/call-girls/borivali">Escorts in Borivali</a>
<a href="https://www.elitepassion.club/call-girls/churchgate">Call girls in Churchgate</a>
<a href="https://www.elitepassion.club/call-girls/colaba">Colaba Escorts</a>
<a href="https://www.elitepassion.club/call-girls/dahisar">Dahisar call girls service</a>
<a href="https://www.elitepassion.club/call-girls/dadar">Dadar call girls service</a>
<a href="https://www.elitepassion.club/call-girls/mumbai-goregaon">Goregaon call girls </a>
<a href="https://www.elitepassion.club/call-girls/juhu">Escorts in Juhu</a>
<a href="https://www.elitepassion.club/call-girls/mumbai">Mumbai Call Girl Service</a>

poojasharmaji 说:
2023年1月20日 20:44

I need to express gratitude for lovely blog offering to us.
http://www.a1delhiescort.in/mahipalpur-escorts.html
http://www.a1delhiescort.in/aerocity-escorts.html
http://www.a1delhiescort.in/hauz-khas-call-girls.html
http://www.a1delhiescort.in/okhla-call-girls.html
http://www.a1delhiescort.in/tilak-nagar-call-girls.html
http://www.a1delhiescort.in/rohini-call-girls.html
http://www.a1delhiescort.in/karol-bagh-call-girls.html
http://www.a1delhiescort.in/dwarka-call-girls.html
http://www.a1delhiescort.in/gurgaon-call-girls.html
http://www.a1delhiescort.in/connaught-place-call-girls.html

Jaipur Escorts Servi 说:
2023年2月13日 18:17

I read your article and find you article is brimming with data. Continue to post that is exceptionally useful for those individuals who is searching for these sort of data.

Call Girls Service i 说:
2023年2月13日 18:18

Get Your Fill of Escorts with Our High-Class Escorts

shivani02 说:
2023年2月21日 20:06

Escort Service in Dehradun || believe in making people happy by fulfilling their dreams. They do not believe in working for profit, rather they want to make the people happy who are in need. This Delhi escorts service is one of the best ones available when it comes to female escort services. Those who have been looking for a woman companion will be pleased with this escort service and it's also open round the clock for all those who need it.

shivani02 说:
2023年2月21日 20:08
Escorts in Dehradun is the best companion for you in night fun. You need not to worry about anything, just book one of them and start spending your night with her as she will make everything very easy for you. She will do everything that a girl can do to make her man happy and satisfied, so get ready and stay tuned!
VIP Dehradun Call gi 说:
2023年2月23日 20:03

I see your post and reed. <a href="http://www.callgirlsdelhincr.in/dehradun-call-girls/">VIP Dehradun Call girls</a> This is great for me this is a decent post you give a piece of extraordinary data and supportive gratitude for sharing this side.

Patna Escort 说:
2023年2月23日 20:05

Very motivating and [url=https://www.thegoaescort.com/patna-call-girls.html]Patna Escort[/url]supportive too.Hope you keep on sharing a greater amount of your ideas.I will very much want to peruse.

Kanpur Escort 说:
2023年2月23日 20:07
This is the post   Kanpur Escort I was searching for roulette I am extremely glad to at long last find out about the Thank you definitely.
 
Hauz Khas Escorts 说:
2023年2月23日 20:09
Very interesting blog. Hauz Khas Escorts  A lot of blogs I see these days don't really provide anything that I'm interested in, but I'm most definitely interested in this one. Just thought that I would post 

 

 
shivani02 说:
2023年2月28日 20:18

The process is totally private, so nobody will know about your meeting with our beautiful escorts - in fact, we'll even provide you with a code word which no one would know! You'll be given enough cash to spend on our stunning Dehradun Escorts. So visit us today and start living the life of your dreams.  

shivani02 说:
2023年2月28日 20:21

Do you fantasize about being with beautiful, sensual, and sexy women? Are you fed up with meeting girls in bars or nightclubs who just want to have a one night stand? Do you dream of finding an escort from  Escorts Service in Dehradun who will make all your wishes come true, fulfilling all the erotic fantasies that only exist in your wildest dreams?

saniyasharma 说:
2023年3月01日 15:35
I'm obviously volatile to say that truly is a truly reestablishing article to work with everything. I will know new information from the article; you are working acceptably. Keep on moving!
saniyasharma 说:
2023年3月01日 15:36
It was a very good post indeed. I thoroughly enjoyed reading it in my lunch time. Will surely come and visit this blog more often. Thanks for sharing

 

saniyasharma 说:
2023年3月01日 15:37
stunning post people and a dedication of gratefulness are generally together for your article this is on a very basic level stunning. Model Escorts in Delhi a dedication of appreciation is all together for your information

 

 
shivani09 说:
2023年3月11日 13:41

You are a modern man and you have a lot of energy to burn. You would like to have a date with one of the most attractive young ladies in the Escorts in Aerocity but you do not want just anything - you want this girl to be an escort.

mumbai escorts 说:
2023年3月17日 15:51

Wonderful article, it was uncommonly useful! I just started in this and I’m turning out to be more familiar with it better.kanpur escorts Service The post is written in exceptionally a decent way and it contains numerous helpful data for me. Many thanks and will search for additional postings from you.
<a href="https://www.mumbaiescortbabes.com/call-girls-airoli.html">VIP Escorts in Airoli</a> ||
<a href="https://www.mumbaiescortbabes.com/call-girls-andheri.html">Andheri Independent Escorts </a> ||
<a href="https://www.mumbaiescortbabes.com/call-girls-bandra.html">Russian Escorts Service in Bandra</a>||
<a href="https://www.mumbaiescortbabes.com/call-girls-belapur.html">Model Escorts in Belapur </a> ||
<a href="https://www.mumbaiescortbabes.com/call-girls-bhayandar.html">High Profile Bhayandar Escorts Service</a> ||

mumbai escorts 说:
2023年3月17日 15:51

If you are looking for a companion to spend your day with and make it memorable, then you can try escorts in Mumbai. Escorts in Mumbai are the ultimate companions who will make sure that you have a great experience. They are professional and come from wealthy background which ensures their good nature. You will find many independent escorts in the city of Mumbai who provide escort services to their clients.[url=https://www.mumbaiescortbabes.com/call-girls-airoli.html]VIP Escorts in Airoli[/url] ||
[url=https://www.mumbaiescortbabes.com/call-girls-andheri.html]Andheri Independent Escorts[/url] ||
[url=https://www.mumbaiescortbabes.com/call-girls-bandra.html]Russian Escorts Service in Bandra[/url] ||
[url=https://www.mumbaiescortbabes.com/call-girls-belapur.html]Model Escorts in Belapur [/url]||
[url=https://www.mumbaiescortbabes.com/call-girls-bhayandar.html]High Profile Bhayandar Escorts Service[/url] ||

delhi call girls 说:
2023年3月18日 17:40

Its an amazing post and very appreciateI am very impressed with your post, in this post I have got a very good article [url=https://www.thedelhicallgirls.com/]Call Girl Delhi[/url] which is an important information for me and if you want more such things then you can visit my website.which is an important information for me and if you want more such things then you can visit my website.

Akriti 说:
2023年3月20日 19:04

The VIP Escort Service in Bangalore has recently gained quite a renown for the quality of its escorts. All of our girls are highly trained in their respective fields, and are ready and willing to meet your needs for recreation. If you want a massage, we have something for you.

Akriti 说:
2023年3月20日 19:05

If you want an artist, we have a girl who can provide just that. Whatever your desires, the Bangalore Escort Service has the perfect girl for you. || Model Escorts in Bangalore || Bangalore Independent Escorts || High Profile Bangalore Escorts || Bangalore VIP Escorts || Model Bangalore Escorts || Independent Bangalore Escorts || High Profile Escorts in Bangalore

Ria Dalal 说:
2023年3月20日 19:31

I came to this site with the introduction of a friend around me and I was very impressed when I found your writing.
https://www.elitepassion.club/call-girls/dadar }}
https://www.elitepassion.club/call-girls/pune }}
https://www.elitepassion.club/call-girls/marine-lines }}
https://www.elitepassion.club/call-girls/bandra }}
https://www.elitepassion.club/call-girls/noida }}

Ria Dalal 说:
2023年3月20日 19:32

I'll come back often after bookmarking This web site is really a walk-via for the whole data you wished about this as well as couldn’t know that to ask.
<a href="https://www.elitepassion.club/call-girls/dadar">Dadar Escorts</a> }}
<a href="https://www.elitepassion.club/call-girls/pune">Call Girls in Pune</a> }}
<a href="https://www.elitepassion.club/call-girls/marine-lines">Marine lines Call Girls</a> }}
<a href="https://www.elitepassion.club/call-girls/bandra">Bandra Escort</a> }}
<a href="https://www.elitepassion.club/call-girls/noida">Noida Escorts</a>}}

Patna Escorts Servic 说:
2023年3月27日 19:09

Appreciation for the unfathomable post you posted. I like how you depict the momentous substance. The focuses you raise are attested and sensible.

anju sharma 说:
2023年5月13日 13:47

I'm disagreeable to uncover this page. I need to thank you for your time for this especially essential read!! I emphatically truly regarded all pieces of it and I moreover have saved you to check out at new data in your site.

Jaipur Call Girls Nu 说:
2023年6月22日 18:09

The spot else may according to a general point of view get such data written in a particularly ideal manner? I have an endeavor that I'm starting late coordinating, and I have been saving watch for such data.

Jaipur Mein Call Gir 说:
2023年6月22日 18:10

I've been looking for some wonderful stuff concerning the issue and haven't had any karma up until this point, You just got another most crucial fan.

Bhopal Call Girl Con 说:
2023年9月12日 19:40

Bhopal, the land of dreams, offers you the exclusive opportunity to meet and spend time with stylish and beautiful Bhopal Call Girl Contact Number.

Call Girl at Jodhpur 说:
2023年9月12日 19:43

Pakistani Call Girl at Jodhpur these girls are the most outstanding service providers who never think of anything other than giving their clients an exceptional time. Our Call Girls are famous in this industry for their outstanding effort and the best way to provide sensual services.

anjusharma 说:
2023年9月27日 15:27

[link https://www.google.com]google[/link]
[link:http://www.google.com]your link text[/link]
[link="https://www.google.com"]google[/link]
[url=https://www.google.com]google[/url]
<a href="https://www.google.com">google</a>
[google](http://www.google.com)
[[http://www.google.com|google ]]
[http://www.google.com google ]
[a=http://www.google.com] google[/a]
[google|http://www.google.com]
"google":www.google.com
[google->http://www.google.com]

Escorts in Delhi 说:
2024年2月08日 21:16

Appreciation's commitment to the shocking spread you've covered is everything. Nice way of doing your blog in which you post exceptional content. The focuses you have improved are valid and appropriate. i always read your blog https://www.delhiescortsgirls.com/what-is-foreplay.html https://www.delhiescortsgirls.com/hentai-anime.html https://www.delhiescortsgirls.com/top-best-pornstars-ever.html https://www.delhiescortsgirls.com/what-is-bdsm.html https://www.delhiescortsgirls.com/what-is-squirting.html

 

Anveshijain 说:
2024年2月14日 16:03

Escorts in Bangalore is available round the clock and we can provide anything from company for a short period to an entire weekend of fun! Our escort girls understand men far better than women who can become jealous and suspicious of what’s going on.

Poojasharma 说:
2024年2月14日 16:05

Welcome to Delhi the most trusted and respected agency in India. Our escorts come from all over the world and are available 24 hours a day. We pick our girls individually based on their looks, personality, beauty, and experience so you can rest assured your time with us will be full of pleasure.


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter