99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

qemu-user-static實(shí)戰(zhàn):從chroot到Docker buildx的跨架構(gòu)模擬指南

qemu-user-static實(shí)戰(zhàn):從chroot到Docker buildx的跨架構(gòu)模擬指南 簡(jiǎn)介面向跨架構(gòu)容器運(yùn)行場(chǎng)景的 qemu-user-static 是一套輕量工具資源基于 QEMU 用戶態(tài)模擬和 binfmt_misc 內(nèi)核機(jī)制解決在 x86 宿主機(jī)上直接執(zhí)行 arm64 等不同體系結(jié)構(gòu)容器時(shí)出現(xiàn)的格式錯(cuò)誤問題。它特別適合需要構(gòu)建多架構(gòu)鏡像、搭建異構(gòu)持續(xù)集成環(huán)境的中高級(jí)運(yùn)維和容器開發(fā)者。整個(gè)壓縮包僅 44KB總共收納 17 個(gè)文件主體由 6 份 Markdown 說明文檔構(gòu)成分別介紹使用指南、開發(fā)者開發(fā)手冊(cè)、兼容鏡像清單以及多種實(shí)際示例另有 5 個(gè) Shell 腳本覆蓋注冊(cè)執(zhí)行器、發(fā)布鏡像、自動(dòng)測(cè)試與生成發(fā)布包等流程并附帶 Dockerfile、GitHub Actions 工作流配置文件、許可證和忽略規(guī)則文件目錄結(jié)構(gòu)清晰便于快速閱讀和復(fù)用。目前已有 587 人學(xué)習(xí)。借助這份內(nèi)容讀者能夠理解 qemu-user-static 配合 binfmt_misc 實(shí)現(xiàn)跨架構(gòu)容器執(zhí)行的完整原理獲得一鍵式注冊(cè)和測(cè)試腳本并參照官方文檔與示例在本地快速?gòu)?fù)現(xiàn)從 x86_64 跨平臺(tái)運(yùn)行 arm64 容器的全過程省去反復(fù)排查環(huán)境兼容性的時(shí)間直接掌握多架構(gòu)容器環(huán)境搭建的關(guān)鍵技能。1. qemu-user-static 是什么一條命令讓 x86 主機(jī)跑透三種架構(gòu)如果你維護(hù)過 CI 流水線大概率遇到過這種場(chǎng)景宿主機(jī)是 x86_64但構(gòu)建產(chǎn)物要跑在 arm64 嵌入式板子上。以往的做法是開一臺(tái) ARM 服務(wù)器或者用 qemu-system 起整機(jī)虛擬機(jī)慢且折騰。qemu-user-static 提供的是另一條路/usr/bin/qemu-*-static是一批靜態(tài)編譯的 QEMU 用戶態(tài)模擬器它不模擬整臺(tái)機(jī)器只翻譯 CPU 指令讓 x86_64 內(nèi)核直接把 arm64 的 ELF 文件當(dāng)作普通進(jìn)程來執(zhí)行。實(shí)際效果就是chroot arm64_rootfs /bin/ls能直接跑出 aarch64 的lsDocker 里--platform linux/arm64的鏡像也能在 x86 主機(jī)上 build 和 run。這套機(jī)制對(duì)嵌入式交叉開發(fā)、多架構(gòu)容器鏡像構(gòu)建、CI 矩陣測(cè)試都極有用而且最終落到 Shell 命令上不過三五條。適合誰不想養(yǎng) ARM 機(jī)器但又必須產(chǎn)出、運(yùn)行、調(diào)試異架構(gòu)程序的開發(fā)者。2. 選擇靜態(tài)版模擬器動(dòng)態(tài)版與靜態(tài)版的取舍和 binfmt_misc 的工作原理2.1 動(dòng)態(tài)版與靜態(tài)版文件體積不是唯一差別QEMU 用戶態(tài)模擬器其實(shí)有兩類安裝產(chǎn)物。一類是發(fā)行版?zhèn)}庫(kù)里的qemu-user裝完是/usr/bin/qemu-aarch64這種動(dòng)態(tài)鏈接版本另一類是qemu-user-static裝完是/usr/bin/qemu-aarch64-static靜態(tài)鏈接、單文件、不依賴宿主機(jī)的 glibc。很多人以為區(qū)別只是體積其實(shí)選型上差很遠(yuǎn)。動(dòng)態(tài)版模擬器依賴宿主機(jī)的動(dòng)態(tài)鏈接庫(kù)意味著它只能在「當(dāng)前宿主環(huán)境」里跑你想把它拷進(jìn)一個(gè) arm64 的 rootfs 或者容器里它一進(jìn)去就因缺庫(kù)報(bào)廢。靜態(tài)版沒有這個(gè)包袱qemu-aarch64-static拷到哪都能執(zhí)行這正是 chroot、Docker 多架構(gòu)構(gòu)建場(chǎng)景里最需要的特性。對(duì)比項(xiàng)動(dòng)態(tài)版 qemu-user靜態(tài)版 qemu-user-static依賴宿主機(jī) glibc 及一堆 .so無單文件靜態(tài)鏈接體積幾百 KB 到 1MB幾 MB 到十幾 MB拷入 rootfs/容器不行缺庫(kù)直接拷過去就能用適用場(chǎng)景宿主機(jī)上偶發(fā)跑一下chroot、Docker buildx、CI 矩陣此外還有性能差異。靜態(tài)版因?yàn)榫幾g時(shí)開啟了更多優(yōu)化翻譯執(zhí)行時(shí)的額外開銷通常比動(dòng)態(tài)版略低。當(dāng)然這只是體感極端性能場(chǎng)景還是別指望模擬器老老實(shí)實(shí)用真機(jī)。我一般會(huì)在開發(fā)機(jī)里把兩個(gè)都裝上日常調(diào)試用動(dòng)態(tài)版凡是涉及 chroot、容器、CI 一律切到靜態(tài)版。2.2 binfmt_misc 的匹配機(jī)制magic 字節(jié)與解釋器的約定qemu-user-static 能生效依賴 Linux 內(nèi)核的binfmt_misc模塊。這個(gè)模塊允許管理員注冊(cè)「文件格式 → 解釋器」的映射內(nèi)核看到目標(biāo)文件頭部特征匹配后就把這個(gè)文件交給指定解釋器執(zhí)行。對(duì)于 ELF 文件匹配特征就是文件頭的 magic 字節(jié)。比如 arm64 的 ELF 頭是\x7fELF加 64 位標(biāo)記加 machine 字段值 1830xB7。注冊(cè)記錄長(zhǎng)這樣# 注冊(cè) arm64 格式到 binfmt_misc實(shí)際中建議用 qemu-binfmt-conf.sh這里僅為展示格式 sudo sh -c echo :qemu-aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-aarch64-static: /proc/sys/fs/binfmt_misc/register這段命令的含義是當(dāng)內(nèi)核遇到一個(gè) ELF 文件其頭部前 20 個(gè)字節(jié)與前面那個(gè) magic 串按 mask 逐位比對(duì)能對(duì)上、且 machine 字段是 0xB7aarch64時(shí)把執(zhí)行權(quán)交給/usr/bin/qemu-aarch64-static。mask 里的\xfe表示 cpu 架構(gòu)字段的最后一字節(jié)不參與比較這樣可以兼容大小端。注冊(cè)完成后你再直接執(zhí)行一個(gè) arm64 二進(jìn)制內(nèi)核會(huì)發(fā)現(xiàn)它的頭匹配這條規(guī)則自動(dòng)用 qemu 去啟動(dòng)它對(duì)用戶來說完全透明。這套機(jī)制像是一個(gè)黑匣子你不需要理解每一次系統(tǒng)調(diào)用怎么被模擬只要知道「注冊(cè)了格式異架構(gòu)程序就能在當(dāng)前內(nèi)核上直接運(yùn)行」。2.3 為什么不建議手寫注冊(cè)記錄版本差異與參數(shù)陷阱手寫注冊(cè)記錄看起來很酷但實(shí)操里有坑。第一不同架構(gòu)的 ELF machine 字段值不一樣記錯(cuò)一個(gè)字節(jié)整條規(guī)則就廢了第二QEMU 版本更新后解釋器路徑和 flags 有變化你手寫的記錄可能和當(dāng)前 qemu-user-static 包不匹配。第三某些規(guī)則還需要F標(biāo)志fix binary讓內(nèi)核把腳本解釋器也交給 qemu 處理少了這個(gè)標(biāo)志容器里跑#!/bin/sh腳本會(huì)直接炸。所以我一般推薦直接用現(xiàn)成工具注冊(cè)。Debian/Ubuntu 系裝完qemu-user-static后qemu-binfmt-conf.sh腳本就在/usr/bin下或者用 Docker 鏡像里的注冊(cè)器# 推薦方式用 multiarch/qemu-user-static 鏡像完成注冊(cè) sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes--reset表示重置已有注冊(cè)記錄-p yes表示注冊(cè)為「持久」格式避免某些系統(tǒng)在重啟或容器重建后把規(guī)則清掉。--credential yes會(huì)根據(jù)目標(biāo)程序的 uid/gid 切換模擬器權(quán)限涉及文件權(quán)限敏感的場(chǎng)景建議加上。用完檢查一下注冊(cè)表是否真的寫進(jìn)去了# 查看所有已注冊(cè)的解釋器 ls -l /proc/sys/fs/binfmt_misc/ | grep qemu # 查看某個(gè)架構(gòu)的具體規(guī)則內(nèi)容 cat /proc/sys/fs/binfmt_misc/qemu-aarch64輸出里能看到enabled和interpreter字段確認(rèn)指向的是/usr/bin/qemu-aarch64-static而不是動(dòng)態(tài)版qemu-aarch64這一步能省掉后面很多莫名其妙的報(bào)錯(cuò)。3. 從安裝到第一個(gè)跨架構(gòu)程序注冊(cè)、chroot 與調(diào)試參數(shù)3.1 安裝、注冊(cè)與驗(yàn)證三條命令理清環(huán)境以 Debian/Ubuntu 系為例安裝包很小裝完注冊(cè)器也一起到位# 安裝靜態(tài)模擬器和 binfmt 支持 sudo apt update sudo apt install -y qemu-user-static binfmt-support # 注冊(cè)所有支持的架構(gòu)到內(nèi)核 sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes第一行安裝的是實(shí)際的qemu-*-static文件第二行才是往內(nèi)核里寫格式規(guī)則。如果你不想依賴 Docker也可以直接跑sudo /usr/bin/qemu-binfmt-conf.sh --qemu-suffix -static --systemd all效果類似。注意這臺(tái)機(jī)器必須開了CONFIG_BINFMT_MISC一般發(fā)行版默認(rèn)都開。驗(yàn)證環(huán)境是否就緒就看注冊(cè)表# 檢查 arm64 是否注冊(cè)成功 cat /proc/sys/fs/binfmt_misc/qemu-aarch64 # 如果輸出 interpreter 為 /usr/bin/qemu-aarch64-static 且 enabled說明環(huán)境 OK3.2 chroot 運(yùn)行 arm64 程序最小可復(fù)現(xiàn)的步驟假設(shè)你有一個(gè)解壓好的 arm64 rootfs 在/opt/arm64-rootfs里面是一套完整的 Debian arm64 文件系統(tǒng)。想在這個(gè) rootfs 里執(zhí)行命令必須先復(fù)制靜態(tài)模擬器進(jìn)去因?yàn)?chroot 后看不到宿主的/usr/bin# 把靜態(tài)模擬器拷進(jìn) rootfs sudo cp /usr/bin/qemu-aarch64-static /opt/arm64-rootfs/usr/bin/ # 掛載必要的虛擬文件系統(tǒng)很多工具依賴 /proc /sys 才能正常工作 sudo mount -t proc /proc /opt/arm64-rootfs/proc sudo mount -t sysfs /sys /opt/arm64-rootfs/sys # 進(jìn)入 rootfs 執(zhí)行命令 sudo chroot /opt/arm64-rootfs /bin/sh -c uname -m cat /etc/os-release如果一切正常uname -m會(huì)輸出aarch64。這一步里最容易踩的坑是忘記復(fù)制qemu-aarch64-static結(jié)果 chroot 后執(zhí)行任何命令都報(bào)Exec format error。另外掛載/proc和/sys不是可選項(xiàng)很多程序一進(jìn)來就訪問/proc/self/status沒掛載直接段錯(cuò)誤。如果你經(jīng)常進(jìn)出 rootfs可以把掛載寫在一條命令里sudo chroot /opt/arm64-rootfs /bin/sh -c uname -m ls /3.3 調(diào)試參數(shù)QEMU_STRACE 與 QEMU_LD_PREFIX 的用法模擬器跑起來后應(yīng)用如果崩了你第一反應(yīng)可能是「模擬器壞了」。其實(shí) qemu-user 提供了幾個(gè)很實(shí)用的環(huán)境變量能幫你快速定位問題。QEMU_STRACE1會(huì)讓 qemu 打印目標(biāo)程序發(fā)起的每一次系統(tǒng)調(diào)用相當(dāng)于給異架構(gòu)程序裝了個(gè) strace。比如懷疑ls卡在某個(gè) syscall 上可以這樣跑sudo env QEMU_STRACE1 QEMU_LD_PREFIX/opt/arm64-rootfs chroot /opt/arm64-rootfs /bin/ls /輸出會(huì)顯示 openat、getdents64 這些調(diào)用的參數(shù)和返回值??吹紼NOENT就知道是路徑不對(duì)看到EACCES就是權(quán)限問題比對(duì)著源碼猜快得多。QEMU_LD_PREFIX是另一個(gè)常被忽略的參數(shù)。qemu 模擬動(dòng)態(tài)鏈接器時(shí)會(huì)按目標(biāo)架構(gòu)的默認(rèn)路徑去找?guī)?。但?chroot 或交叉跑時(shí)依賴庫(kù)可能并不在標(biāo)準(zhǔn)位置。指定這個(gè)變量后qemu 會(huì)優(yōu)先去你給的路徑下找# 讓模擬器去 rootfs 里找動(dòng)態(tài)庫(kù) sudo env QEMU_LD_PREFIX/opt/arm64-rootfs \ QEMU_STRACE1 \ /usr/bin/qemu-aarch64-static /opt/arm64-rootfs/bin/bash這種用法適合不想 chroot、只想單獨(dú)跑一個(gè)目標(biāo)架構(gòu)程序的場(chǎng)景。QEMU_CPU也可以指定 CPU 型號(hào)比如QEMU_CPUcortex-a72能模擬出更接近真實(shí)硬件的特性某些和 CPU 指令集強(qiáng)相關(guān)的代碼段會(huì)依賴這個(gè)參數(shù)。4. Docker 多架構(gòu)構(gòu)建實(shí)戰(zhàn)buildx 與 qemu-*-static 的執(zhí)行鏈4.1 buildx 背后的執(zhí)行鏈RUN 指令怎么被模擬用docker buildx build --platform linux/arm64構(gòu)建鏡像時(shí)宿主機(jī)是 x86_64BuildKit 拉取的基礎(chǔ)鏡像卻是 arm64 的。問題來了構(gòu)建過程中每一條RUN指令都要在新的容器層里執(zhí)行容器里的二進(jìn)制全是 arm64如果內(nèi)核不能識(shí)別構(gòu)建立刻失敗。其實(shí)內(nèi)核對(duì)二進(jìn)制的識(shí)別走的就是 binfmt_misc。基礎(chǔ)鏡像里有qemu-aarch64-static嗎沒有它只是 arm64 的 rootfs。但 BuildKit 在做RUN時(shí)會(huì)以某種方式把 qemu 靜態(tài)模擬器注入到容器里。這個(gè)動(dòng)作依賴宿主內(nèi)核已經(jīng)注冊(cè)了對(duì)應(yīng)的 binfmt 規(guī)則——也就是你在docker buildx create之前必須先執(zhí)行的那條注冊(cè)命令sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes如果在沒注冊(cè)的狀態(tài)下強(qiáng)行--platform linux/arm64構(gòu)建最常見的報(bào)錯(cuò)就是exec /bin/sh: exec format error。這條錯(cuò)誤其實(shí)就是內(nèi)核在說我沒見過這種 ELF 頭也不知道該找誰解釋。4.2 多架構(gòu)鏡像構(gòu)建與推送的完整流程環(huán)境齊了以后完整的多架構(gòu)構(gòu)建流程大概是這樣的# 1. 注冊(cè) binfmt每次機(jī)器重啟后都要確認(rèn)一次 sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes # 2. 創(chuàng)建一個(gè)支持多架構(gòu)的 buildx builder docker buildx create --name multiarch-builder --use docker buildx inspect --bootstrap # 3. 構(gòu)建并推送多架構(gòu)鏡像 docker buildx build \ --platform linux/amd64,linux/arm64,linux/arm/v7 \ -t your-registry.example.com/demo:latest \ --push .參數(shù)說明docker buildx create --name multiarch-builder --use創(chuàng)建一個(gè)獨(dú)立 builder 實(shí)例--bootstrap會(huì)啟動(dòng)它并順便驗(yàn)證 qemu 是否介入成功。--platform后面跟的是逗號(hào)分隔的目標(biāo)平臺(tái)列表會(huì)分別構(gòu)建每個(gè)平臺(tái)的鏡像層。--push直接把 manifest list 推到遠(yuǎn)端倉(cāng)庫(kù)本地不留中間產(chǎn)物。如果你只想在本地驗(yàn)證構(gòu)建結(jié)果而不推送把--push換成--load就行。但注意--load一次只能加載一個(gè)平臺(tái)到本地 Docker想同時(shí)看兩個(gè)平臺(tái)得分兩次 build。構(gòu)建時(shí)觀察日志留意是否出現(xiàn)#1 [linux/arm64 internal] booting buildkit和qemu-*相關(guān)字樣出現(xiàn)說明模擬器參與了解釋執(zhí)行。4.3 arm/v7 的浮點(diǎn)問題為什么 32 位 ARM 經(jīng)常翻車三平臺(tái)構(gòu)建里linux/arm64和linux/amd64通常問題不大真正讓人血壓升高的是linux/arm/v7。這個(gè)平臺(tái)對(duì)應(yīng) 32 位 ARM用的是硬浮點(diǎn) ABIarmhfqemu-arm 在模擬它時(shí)經(jīng)常出現(xiàn)莫名其妙的段錯(cuò)誤尤其是構(gòu)建 Alpine 或依賴 musl 的鏡像時(shí)。我實(shí)際項(xiàng)目中遇到的情況是同樣的 Dockerfilearm64 一遍過arm/v7 在RUN apk add階段隨機(jī)崩潰重跑一次可能成功可能不成功。這種玄學(xué)問題很惱人排查方向有兩個(gè)。第一確認(rèn) qemu-user-static 版本不要太舊舊版對(duì) armv7 的 VFP 浮點(diǎn)指令模擬有缺陷升級(jí)到新版能解決大部分隨機(jī)崩潰第二換用QEMU_CPUmax讓 qemu 以最完整的 CPU 特性去模擬寫法是在 Dockerfile 里加一句ENV QEMU_CPUmax如果加了仍不穩(wěn)定我會(huì)直接放棄在 x86 上 build arm/v7改用linux/arm64加 32 位兼容層的方式或者把 arm/v7 的構(gòu)建任務(wù)放到 arm64 的真實(shí)服務(wù)器上跑。畢竟不是所有模擬問題都能靠升級(jí)版本解決有時(shí)候成本控制比追求大而全更重要。5. 避坑qemu-user-static 使用中的 5 個(gè)高頻問題5.1 binfmt_misc 只讀導(dǎo)致注冊(cè)失敗現(xiàn)象執(zhí)行docker run --rm --privileged multiarch/qemu-user-static --reset -p yes報(bào)錯(cuò)提示cannot mount binfmt_misc: Read-only file system或者Operation not permitted。原因宿主機(jī) systemd 在某些版本里把/proc/sys/fs/binfmt_misc掛成了只讀或者你的 Docker 守護(hù)進(jìn)程沒開特權(quán)模式容器內(nèi)看到的是只讀掛載還有一種情況是宿主機(jī)內(nèi)核模塊沒加載。解決先把 binfmt_misc 重新掛載為可寫再執(zhí)行注冊(cè)sudo mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc -o remount,rw # 或者卸載重掛 sudo umount /proc/sys/fs/binfmt_misc 2/dev/null || true sudo mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc然后再跑注冊(cè)命令。如果還是不行檢查內(nèi)核模塊modprobe binfmt_misc。5.2 Exec format error注冊(cè)丟失與內(nèi)核配置缺失現(xiàn)象docker run --platform linux/arm64 ubuntu uname -m或直接執(zhí)行 arm64 二進(jìn)制報(bào)exec format error。原因最常見的是注冊(cè)表被清空了。內(nèi)核升級(jí)、Docker 重啟、某些系統(tǒng)服務(wù)啟動(dòng)順序問題都會(huì)導(dǎo)致 binfmt_misc 規(guī)則丟失。另外如果宿主內(nèi)核編譯時(shí)沒開CONFIG_BINFMT_MISC怎么注冊(cè)都沒用。解決按順序排查# 1. 看注冊(cè)表在不在 ls /proc/sys/fs/binfmt_misc/ # 2. 確認(rèn)內(nèi)核配置 zcat /proc/config.gz | grep BINFMT_MISC # 或 grep BINFMT_MISC /boot/config-$(uname -r) # 3. 重新注冊(cè) sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes如果第 1 步輸出為空且第 2 步確認(rèn)內(nèi)核沒開就只能換內(nèi)核或改用qemu-system全系統(tǒng)模擬兜底。5.3 chroot 后報(bào) No such file or directory現(xiàn)象你 chroot 進(jìn) arm64 rootfs 后執(zhí)行./app文件存在且?guī)?zhí)行權(quán)限但 Shell 報(bào)No such file or directory。原因目標(biāo)程序是動(dòng)態(tài)鏈接的它的 ELF 頭里記錄了 interpreter 路徑比如/lib/ld-linux-aarch64.so.1。如果你的 rootfs 里缺少這個(gè)動(dòng)態(tài)鏈接器內(nèi)核加載程序時(shí)發(fā)現(xiàn) interpreter 不存在就返回這個(gè)讓人困惑的錯(cuò)誤。解決用file確認(rèn)程序的依賴情況再用 QEMU_LD_PREFIX 或補(bǔ)齊庫(kù)文件# 查看目標(biāo)程序的架構(gòu)和 interpreter file /opt/arm64-rootfs/bin/app # 用 QEMU_LD_PREFIX 指定 rootfs 作為庫(kù)搜索路徑 sudo env QEMU_LD_PREFIX/opt/arm64-rootfs \ /usr/bin/qemu-aarch64-static /opt/arm64-rootfs/bin/app # 或者補(bǔ)齊動(dòng)態(tài)鏈接器推薦 sudo cp /opt/arm64-rootfs/lib/ld-linux-aarch64.so.1 /opt/arm64-rootfs/lib/這個(gè)坑在交叉編譯場(chǎng)景特別常見很多人都被「文件在、權(quán)限對(duì)、跑不了」繞進(jìn)去過??吹絅o such file or directory先別懷疑路徑用file看一眼 dependency 或者直接readelf -l app | grep interpreter。5.4 隨機(jī)段錯(cuò)誤qemu-user 的信號(hào)與浮點(diǎn)差異現(xiàn)象同一個(gè)程序用 qemu 跑有時(shí)正常有時(shí) Segmentation fault而且崩潰位置不固定重跑可能又好了。原因qemu-user 對(duì)信號(hào)處理和一些浮點(diǎn)指令的模擬與真實(shí)內(nèi)核存在差異。尤其是 armv7 的硬浮點(diǎn)指令、ARM 特有的 cache 同步指令、某些clone標(biāo)志位在模擬環(huán)境下行為可能略微不同。多線程程序更容易觸發(fā)。解決第一步升級(jí) qemu-user-static 到最新版本這類問題多數(shù)在新版修復(fù)第二步設(shè)置QEMU_CPUmax放寬 CPU 特性模擬第三步如果還崩就不要在模擬器里死磕把問題程序挪到真實(shí) arm64 硬件或 qemu-system 全系統(tǒng)虛擬機(jī)里復(fù)現(xiàn)。記錄崩潰現(xiàn)場(chǎng)時(shí)配合QEMU_STRACE1抓到崩潰前的最后一個(gè)系統(tǒng)調(diào)用能給排查提供關(guān)鍵線索。5.5 QEMU 版本與內(nèi)核版本的兼容邊界現(xiàn)象同一份 rootfs在 A 機(jī)器上跑得好好的搬到 B 機(jī)器內(nèi)核更新后程序啟動(dòng)就報(bào)非法指令或者直接卡死。原因qemu-user 和內(nèi)核之間存在一個(gè)隱形的兼容邊界。太老的 qemu 不認(rèn)識(shí)新內(nèi)核新增的系統(tǒng)調(diào)用反過來太新的 qemu 用了一些新的 syscall 特性老內(nèi)核不支持也會(huì)出問題。這類問題很難從報(bào)錯(cuò)信息直接看出來。解決強(qiáng)制統(tǒng)一模擬器版本和內(nèi)核版本尤其是在 CI 環(huán)境里# 固定 qemu-user-static 版本Debian/Ubuntu 示例 sudo apt install -y qemu-user-static1:8.2.0dfsg-1 # 跑之前打印模擬器版本留作日志 /usr/bin/qemu-aarch64-static --version如果你在容器里跑multiarch/qemu-user-static鏡像會(huì)跟隨 QEMU 版本更新建議在 CI 里固定鏡像 tag而不是用latest。模擬器和內(nèi)核的關(guān)系比我以前以為的要脆弱得多版本對(duì)齊能消掉一大批「換了臺(tái)機(jī)器就翻車」的問題。6. 進(jìn)階把注冊(cè)、依賴和 rootfs 進(jìn)入壓進(jìn)一個(gè) Shell 函數(shù)6.1 一個(gè) Shell 函數(shù)三步合一步實(shí)際工作里我不會(huì)每次都手敲前面那一長(zhǎng)串命令。交叉開發(fā)時(shí)我通常是這樣的節(jié)奏宿主 x86_64目標(biāo) arm64rootfs 在磁盤某處每天要進(jìn)進(jìn)出出十幾次。于是我把「復(fù)制模擬器 → 確認(rèn)注冊(cè) → 掛載虛擬文件系統(tǒng) → chroot」壓縮成一個(gè) Shell 函數(shù)放進(jìn)~/.bashrc#!/usr/bin/env bash # 用法: qemu-chroot arch rootfs [cmd...] # arch: aarch64 / arm / riscv64 # rootfs: 目標(biāo)架構(gòu)的根文件系統(tǒng)目錄 qemu-chroot() { local arch$1 rootfs$2 shift 2 local qemuqemu-${arch}-static local qemu_host/usr/bin/${qemu} if [ ! -f ${rootfs}/usr/bin/${qemu} ]; then sudo cp ${qemu_host} ${rootfs}/usr/bin/ fi if [ ! -r /proc/sys/fs/binfmt_misc/${qemu} ]; then sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes /dev/null fi for m in proc sys dev; do [ -d ${rootfs}/${m} ] || sudo mkdir -p ${rootfs}/${m} mountpoint -q ${rootfs}/${m} || sudo mount --bind /${m} ${rootfs}/${m} done sudo chroot ${rootfs} $ }函數(shù)邏輯分四步第一步如果 rootfs 里沒有對(duì)應(yīng)架構(gòu)的靜態(tài)模擬器就從宿主復(fù)制一份第二步如果 binfmt_misc 里沒有對(duì)應(yīng)架構(gòu)的注冊(cè)記錄就重置注冊(cè)一次第三步/proc、/sys、/dev缺哪個(gè)掛哪個(gè)用mountpoint -q判斷避免重復(fù)掛載第四步chroot 進(jìn)入 rootfs 執(zhí)行傳入的命令。每次進(jìn) rootfs 前強(qiáng)制走一遍這套檢查能省去至少半小時(shí)的排錯(cuò)時(shí)間。6.2 用來跑交叉編譯結(jié)果驗(yàn)證這個(gè)函數(shù)最常用的場(chǎng)景是驗(yàn)證交叉編譯產(chǎn)物。項(xiàng)目在 x86 上交叉編譯出一個(gè) arm64 二進(jìn)制以前我只能file看一下架構(gòu)然后丟到 CI 里等真機(jī)跑?,F(xiàn)在直接調(diào)函數(shù)# 編譯完馬上在 rootfs 里試運(yùn)行 qemu-chroot aarch64 /opt/arm64-rootfs /app/hello --version # 或者進(jìn)入交互式 shell qemu-chroot aarch64 /opt/arm64-rootfs /bin/bash參數(shù)說明aarch64對(duì)應(yīng)qemu-aarch64-static/opt/arm64-rootfs是 rootfs 根目錄后面的/app/hello --version是目標(biāo)架構(gòu)里要執(zhí)行的命令。想進(jìn)交互式 shell 就傳/bin/bash。對(duì)于依賴復(fù)雜、需要?jiǎng)討B(tài)鏈接庫(kù)的程序先把編譯時(shí)用到的.so拷貝到 rootfs 對(duì)應(yīng)目錄再進(jìn)函數(shù)測(cè)試基本能模擬出真機(jī) 90% 的運(yùn)行行為。我從某次 CI 事故里學(xué)到的教訓(xùn)是當(dāng)時(shí)為了省事跳過了「復(fù)制模擬器」這一步結(jié)果 runner 緩存清理后 rootfs 里沒了qemu-aarch64-static所有測(cè)試在最后階段全部Exec format error從日志到定位花了大半天最后發(fā)現(xiàn)就是少了一個(gè)文件。從那以后我每次進(jìn) rootfs 都強(qiáng)制完整走一遍這套函數(shù)里的四步檢查不再憑印象省略任何一步。模擬器這東西用對(duì)了是效率利器漏了一步就是時(shí)間黑洞。希望這篇筆記能幫你在跨架構(gòu)開發(fā)里少踩幾個(gè)坑。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
丁香五月天狠狠| 亚洲九区| 久久久久久久97| 五月天激情电影| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 久久人妻在线| 五月婷婷丁香网| 色色色色色网站| 亚洲综合色激情色五月| 综合婷婷都市激情| 超碰人人超碰| 午夜天堂一区人妻| 97五月天婷婷| 久久久jd| 99热免费| 婷婷丁香色五月久久88| 久久久27操| pom538精品视频| 色五月激情| 亚洲综合另类| 色色色视频免费无码 | 第九色区av天堂| 日韩欧美四五区| 欧美色一级色| 99熟女啪啪视频| 97视频.干com| 国产精自产拍久久久久久蜜| 九九精品热| 97人人看一| 99热国产精品| 99热这里有精品24| 丁香六月婷婷综合啪啪| 国产这里只有精品| 丁香五月成人av| 欧美综合五月丁香六月婷| 婷婷六月丁香五月| 99热免费看| 色婷婷AV在线| 夜夜嗨一区二区三区直播内容| 激情小说 五月天| 国产乱轮一区二区三区| 激情综合色网| 五月综合影院| 婷婷亚洲天堂| 五月色丁香婷婷综合| 99丁香五月婷| 天天射综合网夜夜操| 婷婷久久18| 色五月综合网| www.深爱激情| 色波激情五月天| 国产午夜精品AV一区二区麻豆| 天天日日夜夜爽。| 日日天天天| 噼里啪啦完整版中文在线观看| 五月丁香六月婷婷视频| 综合激情五月四射婷婷| www久久久久| 任你草| a v色婷婷| 玖玖爱导航| 五月天激情久久| 思思久日精品视频| 欧美狠狠一在草| 热婷婷在线视频| 日日.c| Va另类视频| 99玖玖在线视频| 狠狠精品干练久久久无码中文字幕 | 26UUU一区二区| 久久视频在线视频| 五月丁香六月婷| 狠狠色狠狠色综合日日91| www.99热在线| 九九Y精品热播| 五月激情综合网| 99热这里只有精品2| 色播五月丁香| 干一干xxxx| 夜夜穞天天穞狠狠穞AV美女按摩| 日本一道久久| 五月天婷婷久久| 五月天婷婷激情干干| 91久久综合亚洲噜噜成人在线| 91九九| 天天在线XXX| 深爱丁香激情| 91dy.av| 五月天丁香网站| 五月激香蕉网| AV成人在线网站| 97在线精品| 婷婷五月天小说网| 热99精品视频| 热这里只有精| 五月婷成人| se99热久久一本| 综合AV网| 亚洲精品视频在线播放| 另类视频综合| 亚洲成人在线综合| 五月天综合| 亚洲小视频| 少妇日麻屄| 久久婷五月天| 婷婷九月| 丁香五月综合久久八| 中文字幕,综合,91| 五月香蕉婷婷| 激情五月,激情综合网| www.seqingwuyuetian| 婷婷午夜| 99在线精品免费视频| 亚洲免费看片| 色99在线视频| 久久综合婷婷| 亚洲最大成人综合网720P| 五月丁香六月色| 丁香五月色| 五月亭大香蕉| 精品99在线| 久久图色4| 91综合网| 日韩啪啪自拍| 精品九九网| 婷婷五月丁香成人网| 熟女强人妻一区二区三区四区无| 欧美十二区| 久久精品99国产精品日本| 亚洲操操| 色婷婷丁香五月| 亚洲天堂久久| 亚洲另类在线观看| 六月婷婷色色网| 激情五月成年| 国产综合丁香五月天| 日日夜夜亚洲一区| 另类激情码| 中文字幕五月久久婷婷| 色哟哟精品| 操婷婷久久| 久草 tingting| 日韩三级高清无码| www.精品久9| 成人在线观看精品| 色色综合五月| 99热这里都是精品| 美妞av| 丁香五月婷婷婷婷欧美综合| www.俺去也com| 思思热久久婷婷五月天| 五月天成人网在线观看| 久久色情| 欧美性猛交99久久久久99按摩 | 丁香五月www| 色婷久| 黄色91在线观看| 精品亚洲日韩99欧美片| 五月丁香大香蕉| 天天做综合| 天天上天天爽| 久久婷婷亚洲| 裸体做A爰片毛片A片免费| 五月激情四射网站| 无码激情| 婷婷综合色播网| 天天日天天色| 97人人射| 9色免费网| 亚洲综合草草| Av性爱网| 日本五月婷婷| av国产精品| 亚洲超碰中文字幕| 99热这里| 五月噜噜| 久操热线| 五月丁香六月婷婷精品| 丁香五月六月综合激情| 色色色干| 99自拍视频在线| 久久草大香蕉| 无码人妻少妇色欲AV一区二区 | 丁香五月激情啪啪| 亚洲成人AV电影网| h亚洲| 99热插| 色色色色热| 啪啪操超碰| 狠狠爱婷婷丁香| 日熟女| 99综合久久| 99综合网| 九九婷婷激情综合网| 丁香五月婷婷亚洲激情四射| 97婷婷丁香| 伊人色综合影院视频| 五月婷婷亚洲| 小视频aaa久久久| 青青青在线视频国产| 婷婷五月天人妻| 色综合网页| 99色综合| 天干天天干天天天天天| 人人叉久| 九九这里只有精品| 色久天| 涩综合网| 婷婷五月综合国产精品| 国产无人区大片| 91啪啪视频| 少妇高潮A片无套内谢麻豆传| 热成人网| 婷婷丁香熟女| 丁香五月天网站| 99re热| 欧美A片在线视频免费观看| 99热这里只有精品16| 综合久久综合久久| 色天使色综合| 婷婷99狠狠| 婷婷综合色播网| 91色逼| 狠狠狠狠狠干| 丁香六月激情四射| dingxiangtingtingliuyue| 99热99天堂| 婷婷五月天av| 久久99精品久久久久久噜噜| 日韩久久这里只有精品| 色色婷婷五月天| 91919191919久久成人视频| 激情五月激情综合网| 婷丁五月| 伊人五月婷婷| 新男人天堂人妻| 五月丁香色| 天天色综网| 五月婷婷xxx| 日日操夜夜操中国无码| 无码免费人妻A片AAA毛片西瓜| 影音先锋毛片网站| www91色网站| 欧美日韩成人在线| 另类 在线| 亚洲另类婷婷五月综合| 天天爽爽日日做做| 六月丁香啪啪啪| 五月色情精品| 午夜亚洲AV日韩无码| 亚洲综合网 665566| 日韩精品无码99| 婷婷色激情网| 九九综合| 97干欧美| 琪琪色五月天| 高清成人综合| 丁香五月综合无码趴趴| 红桃91人妻爽人妻爽| 日本综合色图| 丁香五月综合| 97干在线视频| 99热婷婷| 202丰满熟女妇大| 120分钟婬片免费看| 人人草开心五月天| 五月丁香免费看| 丁香五月天欧美在线| a色色色色色| 黄色一级影片| 成人一级片| 六月婷婷最新网址| 懂色av蜜臀av粉嫩av永陈冠希| 婷婷激情五月呦呦| 婷婷大香焦| av国产精品| 欧美狠狠草| 天天色丁香| 亚洲婷婷激情综合激情999精品| 91色性感五月婷婷丁香| 激情6月| 欧美性色A片免费免费观看的| se99视频| 五月丁香婷婷综合| 免费视频WWW在线观看网站| 人人爽天天爽| 成人看片网站| 日韩成人不卡| 色婷狠狠| 日本色图综合| 五月天婷婷xxx| 91天天操天天干天天射| www.激情五月天.com| 中海油常州环保涂料有限公司| 啪啪综合网| 色色免费网站| 日本精品。999| 性 色 婷婷| 免費亭亭成人| 婷婷五月天激情基地| 丁香六月伊人| 色综合九九色综合88| 五月婷婷色影院| 五月丁香欧美综合| 99热这里是精品| 日日夜夜天天| 色色色宗合网| 婷婷99丁香| 九九超日本| 久久九九婷婷| 玖玖视频福利| 欧洲高清免费久久| 看片视频在线免费日产在线看| 色五月天丁香婷婷| 免费精品99| 人妻无码视频网| 九九久久玖玖爱| 六月大香蕉| 婷婷在线免费| 精品无码视频| 久久五月天视频| 色婷婷色99国产综合精品| 99亚州综合精品成人网| 99热久久这里只有精品| 激情久久丁香| 五月天婷综合网站| 五月婷亚洲精品| 五月丁香啪啪啪综合网| 久久无码成人| 五月天丁香成人| 在线国产精品色| WWW激情五月天| 色婷婷成人五月| 综合激情五月婷婷| 国产人妻777人伦精品HD| 欲色人妻| 都市激情久久| 日日撸夜夜操| 国产精品久久久久久久久久免费| 欧美大道不卡| 九九爱看亚洲| 亚洲超碰在线| 超级碰 久久9| 亚洲视频色色| 狠狠干综合网| 大香蕉福利导航| 久久婷婷内射| 午夜激情五月| 9久久精品| 日韩性爱无码| 色视五月天婷婷| 九九热精品视频在线观看| 九九99久久| 一区二区aV电影免费看| 99区视频| 色五月综合| www.色色色com| 婷婷久久网| 99爱免费视频| 国产精品扒开腿做爽爽爽A片唱戏 亚洲爆乳无码精品AAA片蜜桃 | 免费黄色视频网址| 激情婷婷啪啪| 亚洲字幕AV一区二区三区四区 | 色丁香五月婷婷婷| 婷婷少妇激情| 色很久综合| 色婷婷视频| 色综合色| 懂色av粉嫩AV蜜臀AV| 97人人操人人干| 91精品综合久久久久久五月丁香 | 日韩啪啪视频| 无码髙清| 婷婷久久色| 久久综合久色欧美综合狠狠| 开心婷婷五月激情网小说| 色五月婷婷九月| 欧美三级巜人妻互换| 六月婷婷av| 五月天婷婷视频| 欧美在线| 色五月涩涩婷婷蜜桃| 一级二级色大片| 激情玖玖综合网| 秋霞午夜理论| 99久久网站| 色碰碰| 色五月天电影| 91人人爽人人操| 九九热这里只有精品一| 亚洲蜜桃精久久久久久久久久久久| 久久刺激网| 久久 天天| www.久99| 五月丁香欧美在线| 丁香五月激情综合久久| 五月天色婷婷成人| 色色草97| 综合激情站| 色狠狠色综合久久久绯色aⅴ影视| 色色是色N一| 婷婷五月天黄色| 久艹大香蕉| 国产这里只有精品| www.久久综合| 午夜天堂啪啪| 色婷婷丁香五月天| 日韩成人免费电影| 激情五月天之六月婷婷| 荫道BBWBBB高潮潮喷| 色六月天天激情综合网| 五月丁香综合激情| 久久五月天激情视频| 五月婷婷色| www.精品99| 日本狠狠干| 丁香五月婷婷动漫| 九久久婷婷| 五月精品免费XXX| 黄色网址五月婷婷| 婷婷丁香五月激情| 任你擦免费视频| 欧美在线97| 色吧五月| 婷婷丁香社区| SESE无码AV| 一本狠婷婷综合| 婷婷五月天综合在线 | www.日本久久videos| 色综合久久久久| 九九精品视频免费在线| 老师的粉嫩小又紧水又多A片视频| 色婷五月天网站| 91人妻人人操| 久操97| 九九久久99| 丁香六月啪| 九九在线免费观看| 超碰中文字幕在线| 婷综合| 五月天狠狠网站| 这里只有精品视频在线| 99热这里只有精品在线播放| 丁香五月开心亚洲| 99热亚洲精品| 热久久视频99| www.9797国产| 啪啪91| 久久久人妻门| 超碰免费99| 亚洲高清在线| 人人摸人人摸| 精品视频这里只有精品| 亚洲va久久久噜噜噜久久天堂| 婷婷五月丁香六月综合网| 97视频.干com| 国内一级片| 天天做天天爱天天爽综合网| 久久草人妻| 91综合视频丁香| 另类视在线| 婷婷基地成人五月天| 国产av网| 亚洲热视频| 日日日日操| 久婷五月| 国产欧美大香蕉一区| 91九色精品女同系列| ji'qing'luan'ren'lun| 久久大香蕉视频| 中文字幕按摩做爰| 色色五月天婷婷丁香| 99无码免费视频| 五月丁香婷婷综合网色欲| 色婷婷成人丁香| 久热A片| 在线中文av| 婷婷五月天伊人网在线观看视频| 无码区婷婷五月花开| 99在线精品免费视频| 激情综合五月| 激情婷婷综合五月少妇| 欧美成人无码一区二区三区| 亚洲AVDVD| 成人做爰A片免费看网站找不到了| 亚洲久久激情| 色色亚卅| 99热思思在线观看| 色婷婷中文在线| 伊人久久丁香五月91| 这里只有精品免费| 亚洲碰碰碰| 欧美综合五月丁香五月天| 97综合在线| 婷婷五月天首页激情| 国产亚洲成AV人片在线观黄桃| 久久久久亚洲AV成人无码电影| 亚洲狠狠操| 五月婷婷综合热| 色综合大香蕉| 久久精品系列| 丁香婷婷午夜| 90色免费视频| 香蕉AV777XXX色综合一区| 激情五月丁香五月| 久久婷婷国产| 亚洲婷婷欧美婷婷| 综合九九| 久久人妻系列| 色婷五月丁香久亚洲| 五月香婷婷| 婷婷色片| 日本久草福利| 狠狠综合区| 91久女| 成人精品视频99在线观看免费| 99视频内射三四| 99热这里| 五月精品| 热久久这里只有精品| 婷婷五月天在线观看免费| 亚洲AAAA网| 天天爱天天日| 97色色色色色色色| 99亚色色色| 中文无码婷婷| 97碰| 超碰在线人妻| 五月丁香亚洲校园欧美| 色婷五月婷婷| 成人色色综合| 色婷婷丁香特级性爱视频| 狠狠五月天婷婷| 亚洲人人96@| 激情综合自拍五月婷婷色五月| 爱操人妻| 五月丁香网av| 婷婷五月天色网久| 97sese婷婷| 亚洲丁香婷婷| 日本97久久久精品| 狠狠第四色| 亚洲第一黄网| 玖玖资源部在线播放| 狠狠 婷婷| 欧美黑人巨大猛烈cuckold| 色视五月天婷婷| 久久99热精品a片在线观看| 操日本人妻视频| 婷婷十月丁香| 丁香五月婷婷在线| 婷婷五月情| 26uuu国产| 国产毛片欧美毛片久久久| 九九99九九精品免费| 婷婷五月在线影院| 五月天久久激情| 97视频.干com| 99热国产国产| 色性五月天| 99九九热视频| 精品久久99| 91se视频| 色综合中文| 亚洲精品网站色视频| 桃色激情婷婷伊人网| 伊人丁香婷婷东京| 日本五月天网站| 超碰在线人妻| 日本V在线观看不卡视频网站| 九九99热精品| 玖玖婷婷五月天| 激情综合网,五月| 九九精品视频在线6| 久色| 粉嫩AV久久一区二区三区| 婷婷9月天| 外国碰视频网站97| 天天色五月| 久久丁香五月| 亚洲射激情| 久热免费| 免费无码毛片一区二区A片| αV电影| 色播婷婷大香蕉| 激情五月天无码| 久久久天天啊| 国产精品人成A片一区二区| 香蕉五月婷婷| 五月色丁香综合| 伊人五月丁香| 99久久综合网| 激情婷婷九月| 日韩六六久久电影| 激情综合久久| 在线日韩av| 九九热这里只有精品556| 六月色丁香中文字幕| 五月婷婷啪啪啪| 五月婷三级片| 男人的天堂999| 天天狠天天叉| 538在线精品| 97操碰视频| 丁香六月天婷婷开心综合| 狠狠香蕉| 中文字幕av亚洲| 婷婷激情综合网| 国产 亚洲 在线| 抽插特写| 男人综合网| 丁香婷婷大香蕉| 五月深情久久| 日日操日日射| 啪啪一区| 色五月综合网| 六月撸婷婷| 婷婷5月久久综合网站| 色婷婷电影网| 日本一毛片| 久草婷妨| 天天艹天天色| 久久婷婷五月综合激情国产| 亚洲成人影视在线观看| 五月天婷婷激情在线色图| 六月丁香婷婷色69| 中文字幕日产A片在线看| 九色PORNY自拍成人精彩视频| 华人在线免费| 九色成人AV在线| 2025最新亚洲激情在线| 精品久热| 深爱五月月天| 亚洲激情在线| 嫩模aV在线| 可以免费观看的AV| 久久久久久久久久婷婷| 婷婷五月天激情五月天| 大香焦啪啪啪| 色婷婷五月天成人网| 99碰碰| 99精品视频在线观看免费| 色播五月综合网| se.久久视频在线观看| 这里只有精彩亚洲视频推荐| 五月激情丁香啪啪| 五月丁香五月天现场视频| 开心五月婷婷| 一个色的综合| 大战熟女丰满人妻AV| 久久激情综合| 疯狂做受XXXX高潮A片| 深爱婷婷基地| www.夜夜| 婷婷亚洲丁香五月| 色五月婷婷777| 丁香六月爱综合| 97在线观视频免费观看| 婷婷丁香亚洲五月天| 国产黄大片在线观看画质优化| 九九视频精品这里只有| 成人做爰高潮A片免费视频 | 婷婷色五月激情强奸四射| 99久久玖玖| 丁香激情四射| 99久在线精品99re8热| 91久久婷婷| 思思久ren热| 精品国产乱码久久久久夜深人妻| 色情播放| 雪千夏麻豆| 婷婷放心五日爱| 婷婷五月天激情网| 五月激情偷拍婷婷| 热婷婷av| 色综合天堂| 日韩成人精品中文字幕| 拍真实国产伦偷精品| 丁香六月高清视频| 久久婷婷五月综合色和| 五月丁香六月婷| 8区视频在线| 99精品热| 第四色26uuu| 大香蕉人人人| 天天操婷婷| 呦呦v线| 伊大人久久| 婷婷99狠狠| 婷婷大香蕉| 性做久久久久久久免费看| 极品五月天| 色色色在线观看| 思思热在线精品视频| 很很操很很操| 美女91一起草| 五月天婷婷综合| 青青草婷婷综合五月| 综合亚洲AV| 99热老网站| 内射激情在线| 九九干视频| 91碰碰| 丁香五月天在线| 国产操碰| 香蕉曰比| 五月亭亭直播| 五月激情网站| www.色婷婷| 国产亚洲99久久精品熟| 色综合色综合网| 六月婷婷网站| 99热99在线| 九九九九热99超碰| 五月天精品视频| 久久99草五月婷婷| 久久香蕉网| 欧美成人精品老美女噜噜噜| 色五月综合网| 激情五月天情色| 996er热| 99热这里只有免费精品| 色久婷婷五月| 亚洲av无码精品色午夜| 国产精品美女久久久久AV超清| 亚洲熟妇无码乱子AV电影| 婷婷五月综合色中文字幕| 一级性感毛片| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 激情无码网| 欧美性色五月天| 开心婷婷五月天综合| 国产亚洲av片| 丰满少妇猛烈A片免费看观看| 色私五月婷婷| 91精品久久久久久综合五月天| 久久综合这里只有精品1| 丁香久久九九99| 少妇人妻丰满做爰XXX| 91成人视频| 亚洲色色香蕉| 久久九九99字幕| 综合玖玖性爱免费视频| 三级毛片7979| 久久爱综合| 国产偷人爽久久久久久老妇APP| 丁香五月婷婷AV| 激情文学五月丁香六月婷婷| 精品成人无码A片观看香草视频| 久久99久久99精品免视看婷婷| 99资源在线| 亚洲精品无码A片一区二区| 99视频内射三四| 丁香五月综合| 久久看婷婷| 偷拍五月丁香| 婷婷五月天狠狠| 亚洲久久婷婷| 丁香五月综合图片在线观看| 丁香亭亭久久| 婷五月丁香俺| 99在线观看| 97香蕉久久超级碰碰高清版| 男人的天堂97| www.99热这里精品| 丁香熟女乱| 五月婷婷丁香五月婷婷丁香| 色色色图| 99热6色| 亚洲综合婷婷六月丁香五月| 久久机只有这里精品| www.狠狠狠狠| 91视屏在线观看com.wwwvv| henhencao国产在线| 狠狠艹狠狠艹| 丁香五月婷婷呀| 思思99精品视频| 无码网| 日韩99色| 五月天婷婷六月| 激情五月综合六月丁香婷婷狠狠干| 青草网在线观看| 人妻狠狠操| 涩涩涩,com| 天天干夜夜操A片| 婷婷五月天777| 激情五月婷婷色综合| 综合色天天| 狠狠干激情五月| 五月开心激情网| 在热视频精品| 五月丁香婷婷综合网| 99热只有| 婷婷性爱网| 婷婷五月丁香基地| 色欲天天综合网| 专区无日本视频高清8| 激情内射人妻1区2区3区| 五月天婷婷丁香成人网| 综合精品啪啪| 亚洲六月色婷婷| 国产亚洲99久久精品| 国产精品久久久99视频| 午夜 外网 精品 在线| A色色| 色播五月| av在线资源| 26uuu欧美| 精品亚洲国产成AV人片传媒| 97自拍视频网| 中文精品在| 五月丁香日本在线视频观看| 激情网开心网| 久久99网| 天干夜夜操| 成人国产欧美大片一区| 97狠狠碰| 淫视馆aV二区一区| 激情 婷婷 插| 99热8| 五月天婷婷丁香蜜桃91| 99爱视频免费看| 天天综合五月天| 天天操夜夜操| 婷婷成人av| 色九月婷婷综合| 26uuu.| 91精品久久久久久综合五月天| 九九热精品99| 日日干日日| 婷婷五月天丁香久久| 97色在线视频| 色射婷婷五月天| 国产精品视频免费看| 婷婷五月天成人| 五月天久草| 丁香五月婷婷六月婷婷| 精品色色色| 久久婷婷精品| 99热香港| 成人AV免费观看| 丁香五月,激情五月,深爱五月| 日韩在线一级| 最近中文字幕2019视频1| 99偷拍视频在线日本| 久久在线视频只有这里有精品| 啪啪小说五月天| 人妻久久久| 丁香97综合| 丁香婷婷五月天亚洲| 天天天天天天操| 夜夜操狠狠操| 久久性刺激| AAA亚洲AV| 欧美日韩91| 大香蕉伊然在亚洲90| 97色色色色色色色| 播五月丁香三月婷婷| 国产美女无遮挡裸体毛片A片| 五月天另类图片区99| 夜夜操少妇| 天天色播| 成人在线高清| 思思热99在线| 丁香五月欧美| A级毛片高清免费不卡播放谢谢谢谢| 天天色综合色| 在线日韩视频| 91操在线观看| 思思精品久久艹| 99热都是精品| 99re久热只有精品6在线直播.com| www.思思99热| 天天干天天干天天干天天干天天干| 五月综合激情图片| 婷婷激情六月中文| 色五月播五月| 亭亭色网| 亚洲综合五月天| 五月天综合激情网| 六月五月天婷婷涩播在线| 九九视频网| 久久新地址| 91人碰| 日本色色色| 五月激香蕉网| 亚洲欧洲自拍图片专区五月天| 五月激情六月综合| 97人人搞| 婷婷刺激综合| 日韩精品电影| 噜噜色婷婷| 丁香狠狠色婷婷久久无码视频| 六月婷婷狠狠| 99热这里是精品| 日本精品在线噜噜噜| 色婷婷狠| 超级黄色片| 婷婷综合在线| 综合色婷婷| www.99成人视频| 色欲AVV| 久久机只有这里精品| 无遮挡国产高潮视频免费观看| 婷婷亚洲五| 色噜噜狠狠色综无码久久合欧美| 久/久精品99看9| 久久婷婷热| 五月丁香综合啪啪| 色色五月天激情| 六月丁香啪啪啪| 丁香婷婷色色| 丁香婷婷五月六月久久| 婷婷五月综激情| 亚洲成人高清在线| 亚洲超碰在线| 啪啪色激情五月天| 色情成人五月天| 狠狠艹狠狠艹| 国产亚洲精品久久久久久郑州| 五月停停直播| 久热一区| 色婷婷综合网站| 丁香五月婷婷高清| 色五月亚洲| 99久久婷婷五月综合| 九九RE视频在线精品| 91热在线| 色五月婷婷久久| 日日干夜夜撸夜夜骑| 伊人久久大香线蕉精品| 五月天精品综合| 久久精品天| 五月婷婷与六月丁香图片激情| 色婷婷综合久久久久| 99爱视频在线观看| 激情丁香淫荡婷婷| 国产女18毛片多18精品| 婷婷五月天无码| 99久在线精品| 99热99色| 丁香婷婷六月激情综合| 丁香五月天欧美在线| 69精品人人人人| 天天爽天天草| 在线视频激情网站| 玖玖婷婷五月天| 视色网在线播放| 91呦呦呦| 天天舔天天爽| 婷婷五月丁香综合亚洲| 婷婷在线播放| 五月丁香操亭亭网| 亚洲综合五月天婷婷丁香| 欧美婷婷综合| 99只有这里是精品| 超碰99热精品| 五月婷婷AV| 99热这里只有国产精品| 久热伊人在91| 天天插综合网| 能直接看的AV网站| 三级毛片7979| 99精品久久| 婷婷六月情| 日本高清久| 成熟妇人A片免费看网站| 性天天中文网| 五月天久久婷婷| 九九操屄| 久久超视频| 深爱激情九九五月天 | 色五月婷婷五月天| 婷婷激情小说| 久热这里只有精品6官网亚洲| 欧洲电影在线观看免费版英语版| 久久99热免费最新版| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 国产性爱亚洲是图| 婷婷色情小说| 婷婷五月激情网| 亚洲欧洲另类图片| 色色色婷婷| 婷婷美女精品视频| 蜜臀99久久精品久久久久| 女人天堂AV| 亚洲最大视频| 伦乱美欧| 久9免费视频| 五月婷婷 婷婷五月 一区二区 久久久| 狠狠干在线| 99re这里只有精品免费| 91色欲综合| 99色在线观看| 婷婷少妇激情| 婷婷丁香色五月亚洲| 九九九九成人| 日本欧美成人片AAAA| 亚洲精品在线视频| 色婷婷色| 亚洲精品一区无码A片| pom538精品视频| 99色看| 久久天天天| www. 五月. com| 五月网站| 91热视频色网站| 五月天激情综合10p| 成人做爰A片免费看网站找不到了| 五月婷九月| 思思热在线视频精品| 久久99久久99精品免观看粉嫩| 激情五月天免费视频| 99免费热在线精品| 免费啪啪亚州视频| 国内精品免费一区二区2009| 婷婷五月花| 色色色9| 囯产精品久久欠久久久久久九大| 日日夜夜噜噜爽爽| 色五月激情问网站| 综合99综合久久久久久久| 丁香五月婷婷久久久| 亚洲12p| 99精品视频网| 欧洲毛片基地c区| 91狠狠色丁香| 五月婷婷激情久久| 五月天激情网页| 激情综合网,五月| 婷婷丁香在线| 久久性操| av在线激情| 第1影院之五月婷婷| 激情五月天久久| 丁香五月五月婷婷欧美大香蕉| 色播五月| 97碰在线视频| 九九99精品视频在线观看| 五月丁香婷婷深深爱| 五月五婷婷| 思思热在线播放| 天天干天天爽天天操| 丁香五月婷婷88在线| 69五月天视频| Av性爱网站| 99久久亚洲精品视频| 五月婷婷免费在线| 色五月天激情| 天天久久狠狠色综合| 色情丁香五月婷婷精品| 人妻激情视频| 五月婷婷色色网址| 天天综合网~91| 亚洲av成人电影在线观看| 久久天堂女人| 亚洲四色五月| 九伊人网| 影音先锋偷偷色男人站| 色色九九五月天| 天天日中文| 色婷婷在线电影| 五月婷婷丁香日韩在线| AAA久久| 狠狠色综合网| 色色亚洲| 婷婷丁香五月天综合激情| 97日韩无套内| 国产99久9在线+|+传媒| 51XX嘿嘿午夜无码| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 色五月婷婷网| 黄色中文字目| 日韩三级高清无码| 丁香五月WWW| 九九热99免费视频| 久久色区| 麻豆科斗777| 婷婷四色五月| 五月丁香啪啪激情| 五月婷婷福利| 九九热最新| 激情综合网五月| 大香蕉欧美在线| AA丁香综合激情| 五月天综合网| 激情涩播| 日本97在线| 婷婷五月播| 狠狠五月丁香色婷| 777色色色| 99视频久久| 五月丁香色情| 少妇大叫太大太粗太爽了A片| 国内自拍97在线| 欧美精品A片一区在线观看| 五月天婷婷网站888| 欧美亚洲999| 日日干综合| 久久这里只有精品视频1| 啪色综合| 免费观看18视频网站| 婷婷狠狠青青| 99久扒热| 狠狠色激情在线| 亚洲欧美999| 丁香五月首页| 日产精品一线二线三线芒果| 五月丁香花激情啪啪网| 激情综合五月天| 丁香网五月网| 欧美黄色韩日网| 成人版视频在线观看| 免费无码毛片一区二区A片| 丁香天堂夜| 丁香五月1页| 天天爽天天透天天爱| 99久精品视频| 91丨九色丨国产打屁股| AV在线免费观看不卡| 伊人干综合| 狠狠va| 玖玖精品视频| 色五月亚洲| 天堂五月婷婷| 婷婷五月成年人| 五月天婷婷在线AN| 综合激情五月天| 2025神马午夜福利| 91色色色18| 激情五月天婷婷视频| 97久久视频| 182tv992tv人之初午夜免费观看| 96精品久久久久久久久| 五月婷久久在线| 丁香六月婷婷| 亚洲国产黄色电影| 婷婷久久国产视频| 人妻九九九九| 99热在线观看成人| 五月丁香综合| 色五月av| 性按摩玩人妻HD中文字幕| 欧美大香蕉视频| 国产精品香蕉| 99国产精品久久久久久久久久久| 久热婷婷在线视频| 色一区高清| 色99色| 亚洲偷| 久久久er热| 狠狠色婷婷7777久| a在线免费v| 五月天五月婷五月激情网| 日本三级韩三级99久久| 91婷婷色 | 欧美日韩成人一区二区| 激情 久久 婷婷| 激情网五夜婷婷| 激情丁香五月| 99在线视频喷水| 激情美女五月天激情在线| 人人干99| 综合五月丁香97| 国产精品久久7777777精品无码| 五月丁香网站| 99精品自拍视频| 日本欧美成人片AAAA| 肏日网在线看| 开心六月丁香五月婷婷| 97se视频在线| 色噜噜五月丁香婷婷| ji'qi'luan'ren'lun| 亚洲电影在线观看| 激情五月深爱五月观看| 综合色色婷婷| 婷婷99狠狠躁天天躁| www.99久| 久99热在线观看| 五月婷婷丁香在线| 玖玖色综合色| 五月丁香婷中文| 人妻丰满精品一区二区A片| 天天艹天天综合网| 婷婷久久五月丁香| 99热在线中文字幕| 99精品亚洲| 久久99草五月婷婷| 人妻VideOssS人妻| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 中文字幕无码AV| 日韩狠狠色婷婷| 丁香五月电影| 九月丁香婷婷综合激情| jiZZdr| 色婷婷五月影视| 操骚货在线| 亚洲日韩国产黑丝黑丝AVAV一区二区三区| 99久在线精品99re5热视频| 青青999| 色五月综合| 五月香蕉网| 五月天成人在线播放丁香| 久久成人亚洲欧美电影| 久久性爱视频这里只有精品| 久cao香蕉影院| 国产色婷婷亚洲| 99精品偷自拍| 丁香五月激情婷婷视频| 婷婷激情五月| 婷婷久久亚洲| 另类小说色婷婷| 丁香五月婷婷啪| av亚洲国产小电影| 99久热这里有精品| 少妇人妻人伦A片| 久久婷五月综合色| 在线视频区| 免费视频这里只有精品| 丁香五月婷婷欧美成人色图| 涩五月丁香| 日韩 mm 不卡| 日韩啪| 夜夜骑日日操| av九九| 五月婷婷干| 888久久久| 综合色播| 五月天自拍网| BlACKEDRAW视频一区二区| 婷婷五月天av| 五月丁香爱婷婷深深| 色综啪啪网| 国产精品色婷婷AV综合色色| 激情综合国产| 久久久久9999| 婷婷丁香五月天中文字幕| 五月丁香婷婷成人网| 色丁香六月| 亚洲不卡欧洲| 婷婷五月花| 六月色婷婷欧美| 超碰99热精品在线| 久碰婷婷视频| 亚洲色色图片| 久re在线| 久久天堂| www.99热日韩.com| 色吧婷婷五月亚洲| 综合婷婷五月天| 超碰成人av| 亚洲欧美婷婷五月色综合| 亚洲麻豆乱码国产2028| 99内射视频| 日日撸夜夜操| 婷婷五月丁香久久| 天堂网操| 天天综合精品| 久久五月婷婷电影| 亚洲AV影片在线观看| www.狠狠| 六月丁婷婷| 亚洲婷婷丁香五月| 丁香五月成人| 密乳视频| 精品动漫 无码av|